nginx-upstream-keepalive;accept_mutex-proxy_http_version-1.1-proxy_set_header-connection

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;------------------------------------->個數,總共保持長鏈接的個數 }

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息