Nginx的高并发有目共睹,不过这种环境下也有性能瓶颈:网络带宽。改善这一瓶颈需要对连接进行限速。 今天整理了Nginx的网络限速记录下来: 示例: limit_zone one $binary_remote_addr 32k; server { listen 80; server_name 192.168.1.222; location / { root /var/www/html; index index.html index.htm index.php; autoindex on; autoindex_exact_size off; autoindex_localtime on; limit_conn one 2; limit_rate 10k; } 说明: limit_zone,针对每个IP定义一个存储session状态的容器。要求大于等于32K。 limit_conn,限制每个IP发起的连接数,比如本实例设了2个,当我用IE进行单线程下载的时候还可以打开该站点的一个网页。而用迅雷下载时,迅雷会启用2个线程下载,所以当再去打开网页的时候,服务器端会返回错误请求。该值建议设置得高一些,比如15左右。 limit_rate,限制每个连接速度为10K,此限制是针对单个线程,比如这个例子,我用IE下载是10K,当用迅雷时它会占用2个线程,所以迅雷下载速度为20K,此实例也很好的解释了迅雷下载速度快的原因。 (责任编辑:IT) |