nginx防hashdos模块释出
以下内容由 [五四陈科学院]提供
hashdos这个事,严格意义上不是各种语言的错了(不过perl的确处理得很好),但是用nginx来擦屁股要干净些。
借鉴tomcat的作法,实现了下面这个nginx-http-hashdos-module,通过设置hashdos(默认on)的开关和body_max_count(默认值1000),对nginx后面的服务进行安全防护,相比对php或者java进行patch,这或许是最好的办法了。
nginx-http-hashdos-module项目地址
https://github.com/54chen/nginx-http-hashdos-module
如何使用
1.下载zip后保存到一个目录,如~/nginx-http-hashdos-module。
2.cd nginx-1.0.9/
3.重新编译和安装nginx
./configure --prefix=/opt/soft/nginx --with-pcre --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-debug --add-module=/path_to/nginx-http-hashdos-module/ && make && make install
4.配置打开:
hashdos on;
body_max_count 1000;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /opt/soft/nginx/conf/fastcgi_params;
client_body_buffer_size 2m;
client_max_body_size 2m;
}
注意事项
因为计算参数都在内存中进行,所以client_body_buffer_size 与 client_max_body_size 的值一定要相等。推荐2m。
TODO
改进in-file时的post分析。
https://github.com/54chen/nginx-http-hashdos-module
想快点找到作者也可以到Twitter上留言: @54chen
或者你懒得带梯子上墙,请到新浪微博: @54chen