nginx+resin+redis+mysql的架构;mysql
有外部模拟用户请求的大量攻击;它尝试请求了80就断开;看到的现象是在跑有nginx80的主机上TCP链接数少nginx
:redis
ESTABLISHED少; 在后端resin的主机上有大量的TIME_WAIT,而后resin所在主机的内核会报flood攻击信息sql
而在nginx80的主机上SYN_RECV 少;有大量的SYN_SENT后端
================多线程
尝试经过nginx-upstream模块的keepalive机制来容纳该种攻击;架构
须要配置以下:线程
events {
use epoll;
worker_connections 65535;
accept_mutex off;--------------------------->新加;多线程须要
}server
keepalive_timeout 100;--------------------->默认是65;设置更长的时间,造成链接池;让响应用户请求并转发给resin的TCP链接保持可复用。ip
proxy_http_version 1.1;--------------------->新指定,默认是1.0;1.0不适用
proxy_set_header Connection "";----------->1.1不须要,因此清空
upstream name_server { server ip:port; keepalive 32;------------------------------------->个数,总共保持长链接的个数 }