iptables ip_conntrack_max 调整

作者:sealinger 发布时间:April 29, 2011 分类:混口饭吃

一、概念

====================

-允许的最大跟踪连接条目:CONNTRACK_MAX(默认值是 2^16=65536 )
-存储跟踪连接条目列表的哈西表的大小:HASHSIZE
-每个哈西表的条目(叫一个bucket),包含了一个链接起来的跟踪连接条目
-哈希表大小HASHSIZE,表现为 条目bucket的多少,在iptables启动时在日志中会显示。

图表形象解释:

例如,系统默认配置下,启动 iptables 时的信息如下:

ip_conntrack version 2.4 (8192 buckets, 65536 max) - 304 bytes per conntrack

二、实战:调大 conntrack_max 参数(2.6内核)

========================================

1)增大 ip_conntrack_max(设置为 2^20,默认值是 2^16=65536)

# vi /etc/sysctl.conf

net.ipv4.ip_conntrack_max = 1048576

2)增大 hashsize (在i386架构上,HASHSIZE = CONNTRACK_MAX / 8

# vi /etc/modprobe.conf

options ip_conntrack hashsize=131072

然后重启 iptables 服务,在 messages中可以看到参数已生效:

# service iptables restart

# tail /var/log/messages
Feb 27 04:02:02 dispatcher syslogd 1.4.1: restart.
Feb 27 17:45:01 dispatcher auditd[3924]: Audit daemon rotating log files
Mar  1 11:47:13 dispatcher kernel: Removing netfilter NETLINK layer.
Mar  1 11:47:13 dispatcher kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Mar  1 11:47:13 dispatcher kernel: Netfilter messages via NETLINK v0.30.
Mar  1 11:47:13 dispatcher kernel: ip_conntrack version 2.4 (131072 buckets, 1048576 max) - 228 bytes per conntrack

注:只修改 net.ipv4.ip_conntrack_max = 1048576 ,重启iptables服务,messages信息中 (8192 buckets, 65536 max) 不变。

阅读剩余部分...

[转]Nginx location 和 rewrite retry

作者:sealinger 发布时间:April 28, 2011 分类:混口饭吃

原文地址:绍兴数码商城的空间

2011-04-07 23:24

nginx的rewrite有个很奇特的特性 — rewrite后的url会再次进行rewrite检查,最多重试10次,10次后还没有终止的话就会返回HTTP 500。

用过nginx的朋友都知道location区块,location区块有点像Apache中的RewriteBase,但对于nginx来说location是控制的级别而已,里面的内容不仅仅是rewrite.

这里必须稍微先讲一点location的知识.location是nginx用来处理对同一个server不同的请求地址使用独立的配置的方式。

举例:

location  = / {
  ....配置A
}
 
location  / {
  ....配置B
}
 
location ^~ /images/ {
  ....配置C
}
 
location ~* \.(gif|jpg|jpeg)$ {
  ....配置D
}

访问 / 会使用配置A
访问 /documents/document.html 会使用配置B
访问 /images/1.gif 会使用配置C
访问 /documents/1.jpg 会使用配置D

如何判断命中哪个location暂且按下不婊, 我们在实战篇再回头来看这个问题.

现在我们只需要明白一个情况: nginx可以有多个location并使用不同的配.

sever区块中如果有包含rewrite规则,则会最先执行,而且只会执行一次, 然后再判断命中哪个location的配置,再去执行该location中的rewrite, 当该location中的rewrite执行完毕时,rewrite并不会停止,而是根据rewrite过的URL再次判断location并执行其中的配置. 那么,这里就存在一个问题,如果rewrite写的不正确的话,是会在location区块间造成无限循环的.所以nginx才会加一个最多重试10次的上限. 比如这个例子

location /download/ {
  rewrite  ^(/download/.*)/media/(.*)\..*$  $1/mp3/$2.mp3  last;
}

如果请求为 /download/eva/media/op1.mp3 则请求被rewrite到 /download/eva/mp3/op1.mp3。

结果rewrite的结果重新命中了location /download/ 虽然这次并没有命中rewrite规则的正则表达式,但因为缺少终止rewrite的标志,其仍会不停重试download中rewrite规则直到达到10次上限返回HTTP 500。

认真的朋友这时就会问了,上面的rewrite规则不是有标志位last么? last不是终止rewrite的意思么?

说到这里我就要抱怨下了,网上能找到关于nginx rewrite的文章中80%对last标志的解释都是

   last – 基本上都用这个Flag

……这他妈坑爹呢!!! 什么叫基本上都用? 什么是不基本的情况? =皿=

阅读剩余部分...

人生就是折腾(WordPress-to-Typecho)

作者:sealinger 发布时间:April 24, 2011 分类:默认分类

花了两天时间,把Blog系统从WordPress换到Typecho了,挺折腾人的:

1)先安装Typecho-0.8,安装WordPress-to-Typecho插件;
2)再安装WordPress-2.7;
3)从WordPress-3.0导出文章,再从WordPress-2.7导入;
4)再从Typecho中用wordpress-to-typecho插件导入WordPress-2.7的数据库;
5)更新数据库,做些附件路径的修改等;
6)研究Nginx Rewrite,做伪静态化;
7)手工修改下文章的分类。

总算完工,又重新开始。。。

考桩四人组,全部通过,凯旋归来

作者:sealinger 发布时间:April 18, 2011 分类:简单生活

今天下午考桩,等待时间太长(三个小时),导致人容易紧张,直到考完那一刻都没感觉到放松。。。

不过我们都是实力派,毕竟练得很熟了,全部通过。

我中途居然熄火了,是真的紧张啊。。。有木有!!

总之又搞定一门,V!

全球(含香港、澳门)旅游订房专业网站-agoda

作者:sealinger 发布时间:April 2, 2011 分类:简单生活

http://www.agoda.com/  (全球主页)

http://www.agoda.com.cn/  (中文主页)

专业驴友同事介绍的,是全球最大的订房网站,他去泰国就是在这里订的。感觉比国内那些旅游网站好多了,前两天刚订了香港的酒店,各种价位都有(貌似该网站和酒店有合作优惠的,跟酒店当天价格不同),且有不少驴友写的酒店点评,供选择参考。

真诚介绍给旅游新手使用(绝非广告,是就好了。。。)。