nginxÏÞÁ÷ÔõôʹÓÃ
nginx ͨ¹ýÒÔÏ°취ʵÑéÏÞÁ÷£ºÆôÓÃÏÞÁ÷Ä£¿é£ºload_module ngx_http_limit_conn_module.so;ÉèÖÃÏÞÁ÷¹æÔò£ºlimit_conn_zone $binary_remote_addr zone=mylimit:10m;ÉèÖÃËÙÂÊÏÞÖÆ£ºlimit_conn mylimit 20;¾Ü¾øÁè¼ÝÏÞÖƵÄÇëÇó£¨Ä¬ÈÏ 503 ¹ýʧ£©£»¿ÉÑ¡£º×Ô½ç˵¹ýʧҳÃ棺error_page 503 /error-page.html;
Nginx ÏÞÁ÷ʹÓÃÒªÁì
СÐò
Nginx ÊÇÒ»¿îÊ¢ÐÐµÄ Web ЧÀÍÆ÷£¬ËüÌṩÁËÏÞÁ÷¹¦Ð§£¬¿ÉÒÔÏÞÖÆ¿Í»§¶Ë¶ÔЧÀÍÆ÷µÄÇëÇóËÙÂÊ£¬±ÜÃâЧÀÍÆ÷¹ýÔØ¡£
°ì·¨£º
1. ÆôÓÃÏÞÁ÷Ä£¿é
ÔÚ Nginx ÉèÖÃÎļþÖУ¬Ìí¼ÓÒÔÏÂÖ¸ÁîÆôÓÃÏÞÁ÷Ä£¿é£º
load_module ngx_http_limit_conn_module.so;
µÇ¼ºó¸´ÖÆ
2. ÉèÖÃÏÞÁ÷¹æÔò
ÔÚЧÀÍÆ÷»òÐéÄâÖ÷»ú¿éÖÐÌí¼ÓÒÔÏÂÖ¸ÁîÉèÖÃÏÞÁ÷¹æÔò£º
limit_conn_zone $binary_remote_addr zone=mylimit:10m;
µÇ¼ºó¸´ÖÆ
$binary_remote_addr ±äÁ¿ÌåÏÖ¿Í»§¶ËµÄ¶þ½øÖÆ IP µØµã¡£
zone=mylimit Ö¸¶¨ÏÞÁ÷ÇøµÄÃû³Æ¡£
10m Ö¸¶¨ÏÞÁ÷ÇøµÄ¾Þϸ£¬µ¥Î»ÎªÕ××Ö½Ú¡£
3. ΪÏÞÁ÷ÇøÉèÖÃËÙÂÊÏÞÖÆ
Ϊ½¨ÉèµÄÏÞÁ÷ÇøÉèÖÃËÙÂÊÏÞÖÆ£º
limit_conn mylimit 20;
µÇ¼ºó¸´ÖÆ
mylimit ÊÇ֮ǰ½¨ÉèµÄÏÞÁ÷ÇøµÄÃû³Æ¡£
20 Ö¸¶¨Ã¿ÃëÔÊÐíµÄ×î´óÅþÁ¬Êý¡£
4. ¾Ü¾øÁè¼ÝÏÞÖƵÄÇëÇó
ĬÈÏÇéÐÎÏ£¬Áè¼ÝËÙÂÊÏÞÖƵÄÇëÇ󽫷µ»Ø HTTP 503£¨Ð§ÀͲ»¿ÉÓ㩹ýʧ¡£
5. ×Ô½ç˵¹ýʧҳÃæ
ÈôÊÇÐèÒª£¬¿ÉÒÔ×Ô½ç˵Áè¼ÝÏÞÖÆʱÏÔʾµÄ¹ýʧҳÃ棺
error_page 503 /error-page.html;
µÇ¼ºó¸´ÖÆ
ʾÀýÉèÖãº
ÒÔÏÂÊÇÒ»¸öÍêÕûµÄʾÀýÉèÖãº
load_module ngx_http_limit_conn_module.so; server { location / { limit_conn_zone $binary_remote_addr zone=mylimit:10m; limit_conn mylimit 20; error_page 503 /error-page.html; } }
µÇ¼ºó¸´ÖÆ
¸½×¢£º
ÏÞÁ÷ÇøµÄ¾ÞϸºÍËÙÂÊÏÞÖÆ¿ÉÒÔƾ֤ÐèÒª¾ÙÐе÷½â¡£
Nginx »¹ÌṩÁËÆäËûÏÞÁ÷Ä£¿é£¬Èç ngx_http_limit_req_module£¬ÔÊÐí¶ÔÇëÇóËÙÂʾÙÐиüϸÁ£¶ÈµÄ¿ØÖÆ¡£
ÒÔÉϾÍÊÇnginxÏÞÁ÷ÔõôʹÓõÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡