码迷,mamicode.com
首页 > 其他好文 > 详细

nginx应用优化

时间:2019-03-15 10:47:08      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:事件模型   存储   affinity   日志切割   保存   conf   log   特定   网络   

1、网络IO事件模型:use epoll;
在/etc/nginx/ngin.conf添加
events {
worker_connections 1024;
use epoll;
}

2、进程数量及 CPU绑定

#将work process绑定到特定cpu上,避免进程在cpu间切换的开销
worker_cpu_affinity 0001 0010 0100 1000

#4内核8进程时的设置方法:worker_cpu_affinity 00000001 00000010 00000100 10000000

3、隐藏软件名及版本信息:http{ server_tokens off;}

4、日志:

日志切割\轮询
不记录不需要的日志:

location /nginx-status
{
stub_status on;
access_log off;
}

访问量

PV:点击量

UV:客户量

访问日志的权限设置:

chown -R root.root /app/logs

chmod -R 600 /app/logs

5、NGINX 防止DOS/DDOS***

限制用户并发连接数:

http{ limit_conn_zone $binary_remote_addr zone=perip_conn:10m; }

ngx_http_limit_conn_module:调用limit_conn模块
$binary_remote_addr: 二进制远程地址
zone=perip_conn:10m:定义zone名字叫perip_conn,并为这个zone分配10M内存,用来存储会话(二进制远程地址),1m内存可以保存16000会话。

location{ limit_conn perip_conn 1;}

限制用户连接速率:

http{limit_req_zone $binary_remote_addr zone=reqrate:20m rate=10r/s; }

limit_req_zone:调用limit_req模块
rate=10r/s:频率为每秒10个请求

location{ limit_req zone=reqrate burst=5; }

burst=5:允许超过频率限制的请求数不多于5个,假设1、2、3、4秒请求为每秒9个,那么第5秒内请求15个是允许的,如果第一秒内请求15个,会将5个请求放到第二秒,第二秒内超过10的请求直接503,类似多秒内平均速率限制。

nginx应用优化

标签:事件模型   存储   affinity   日志切割   保存   conf   log   特定   网络   

原文地址:https://blog.51cto.com/14241151/2363341

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!