良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

TCP中异常关闭链接的意义 异常关闭的情况

终止一个连接的正常方式是发送FIN。 在发送缓冲区中 所有排队数据都已发送之后才发送FIN,正常情况下没有任何数据丢失。但我们有时也有可能发送一个RST报文段而不是F IN来中途关闭一个连接。这称为异常关闭 。 进程关闭socket的默认方式是正常关闭,如果需要异常关闭,利用 SO_LINGER选项来控制。异常关闭一个连接对应用程序来说有两个优点:(1)丢弃任何待发的已经无意义的 数据,并立即发送RST报文段;(2)RST的接

阅读全文...

mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'

原因是mysqlbinlog工具无法识别binlog中的配置中的default-character-set=utf8指令。两个方法可以解决:一是在MySQL的配置/etc/my.cnf中将default-character-set=utf8 修改为 character-set-server = utf8,但是这需要重启MySQL服务,如果你的MySQL服务正在忙,那这样的代价会比较大。二是用mysqlbinlog --no-defaults 命令打开

阅读全文...

数据库记录的删除,update比delete好

数据库使用delete语句后,数据库文件大小并没有变小,以致数据库的每次插入操作,都会使数据库体积变大。 与其删不掉,还是让他留着吧。发现使用Update的时候,只要新的数据不比原来的大,数据库体积就不会增大(文件存到数据库很容易看出效果)。 所以使用Update方式标记删除记录,添加新记录的时候如果存在标记为删除的记录,则更新该条记录为新记录。

阅读全文...

mysql一台服务器多实例做slave的配置方法

Master 1服务器和Slave服务器(3306)主从同步1、 Master 1服务器--查看参数文件,主要查看是否开启binlog和serverid[root@localhost ~]# cat /etc/my.cnflog-bin= mysql-binserver-id =200--登录mysql,赋予slave账号权限,允许该用户可以在主库上读取日志[root@localhost ~]# mysqlmysql> grant replication slave,reload,supe

阅读全文...

为flash建立socket安全策略文件服务

前因
Flash被广泛应用于互联网各个方面,是因为它提供了各种各样的特性,其中很重要的一点就是,可以用flash建立TCP连接到服务器然后交换数据。从网络管理员的观点看,一个互联网的服务器能够连接进到内网里来,是一个很恐怖的事情,所以flash搞出来一个安全策略文件。之前用nginx搭建了843端口http://blog.uouo123.com/post/806.html,可能是因为版本兼容问题,perl测试成功,但是产品始终获取不到,则查找是否有其他办法来解决问题。

阅读全文...

标签: nginxflashsocket

作者:良玉 分类:故障处理 浏览:897 评论:0

ubuntu下的service与/etc/init.d区别

    现在Ubuntu启动,关闭服务不能用/etc/rc*.d/init.d/{Service} {start|stop|restart}了,需要用service {Service} {start|stop|restart}。

    在网上搜索后发现原因是Ubuntu10.04后引入了upstart来管理自启动服务。旧的系统管理被称作SysV,它通过在代表各个run level的目录里建立脚本来控制服务的自动启动。比如,/etc/rc0.d目录里以S开头的脚本会被运行在runlevel 0。

    在这种方式下,如果要屏蔽一个服务,需要把S开头的那个更名为以K开头。而所以在rc*.d下的脚本都链接到/etc/init.d目录里。而Upstart采用了完全不同的方式。它要求所有的启动脚本,其实是配置文件,建立在/etc/init目录下,每个服务一个文件,里面定义脚本启动与关闭的运行级别、条件、事件,等。

    可以看得出,Upstart要比SysV高明得多,因为SysV启动是线性、顺序的,一个S20的服务必须要等待S19启动完成才能启动,如果一个启动要花很多时间,那么后面的服务就算完全无关,也必须要等。

    而在Upstart下,服务的启动基于事件,而且是并行的,只要事件发生,服务可以并发启动。这种方式无疑要优越得多,因为它可以充分利用现在计算机多核的特点,大大减少启动所需的时间。


阅读全文...

RTL8111/RTL8168 Network Connection Fix集成网卡更换驱动

组装机网卡RTL8111/RTL8168 ,装了debian7.8

系统驱动:Kernel driver in use: r8169

流量大的时候经常网卡死掉


网上成功资料:


1) Check to see if the r8169 module is loaded
-> lsmod | grep r816
r8168 41104 0 
-> lspci -v
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
Subsystem: ASRock Incorporation Device 8168
Kernel driver in use: r8169
Kernel modules: r8169


阅读全文...

debian7.8下make报错/lib/modules/3.2.0-4-amd64/build: No such file or directory. Stop.

$ make
make -C /lib/modules/3.2.0-4-amd64/build M=/home/erhannis/Downloads/vhba-module-20130607 modules
make: *** /lib/modules/3.2.0-4-amd64/build: No such file or directory.  Stop.
make: *** [modules] Error 2

解决:

apt-get install linux-headers-$(uname -r)


阅读全文...

nginx配置多个域名,server_names_hash_bucket_size 问题

配置多个 server 虚拟主机,必须要在配置文档中 http { 里头加上 server_names_hash_bucket_size 64; 这么一句

http {

server_names_hash_bucket_size 64;

include mime.types;
default_type application/octet-stream;
………….省略

}

不然不但 nginx 启动不了,而且 nginx -t 测试配置文档的时候会提示

could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32
2016/05/20 09:54:27 [emerg] 11372#0: the configuration file /opt/nginx/conf/nginx.conf test failed

  下面是在中文wiki上摘抄的一段说明
  保存服务器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size所控制的。参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。如果 hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键 值。因此,如果Nginx给出需要增大 hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小.


阅读全文...

sendEmail发送邮件

sendEmail是一个轻量级,命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择:使用简单并且功能强大.这个被设计用在php、bashperl和web站点使用。以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。用了sendEmail你将不在喜欢sendmail了.下载安装sendEmail1234sendEmail下载地址:http://caspian.dotconf.net/menu/Software/SendEmail/#

阅读全文...

nginx解决flash沙箱冲突

nginx配置:

server {
        listen 843;
        server_name localhost;

        location / {
                rewrite ^(.*)$ /crossdomain.xml;
              }
         
        error_page 400 /crossdomain.xml;
 
        location = /crossdomain.xml {
        root /var/www/html/;
      }

}


crossdomain.xml 放在web根目录下:

<?xml version="1.0" ?> 
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all" />
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>


然后perl去检测

# perl -e 'printf "<policy-file-request/>%c",0' | nc 127.0.0.1 843
<?xml version="1.0" ?> 
<cross-domain-policy>
<allow-access-from domain="*" /> 
</cross-domain-policy>


阅读全文...