文章目录
一、更改进程数
###编辑主配置文件
vim /usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 2;
worker_cpu_affinity 01 10;
envents{
###写入epoll模型
use epll;
###每个工作进程的最大连接数
worker_connections 10240;
}
二、Nginx 调优方式(Time wait)
1. 软件优化
| 优化内容 | 设置方式 |
|---|---|
| 隐藏版本号 | server_tokens off; |
| 设置运行用户/组 | 方法一:配置文件中修改user 用户组 组名;方法二:编译时直接设置 |
| 页面缓存时间 | expires 时间; |
| 连接保持超时 | keepalive_timeout 服务器超时时间 [客户端超时时间]; |
| 设置工作进程数 | worker_processes auto/同CPU数量 ;worker_cpu_affinity 绑核 |
| 设置并发 | worker_rlimit_nofileworker_connections |
| 网页压缩 | gzip on; |
| 防盗链 | rewrite |
| IO模型 IO多路复用 | events { use epoll; } |
2. 系统内核优化
| 文件 | 设置方式 |
|---|---|
/etc/security/limits.conf | * soft nofile 65535 打开文件数 * hard nofile 65535 * soft nproc 65535 打开进程数 * hard nproc 65535 * soft memlock unlimited 内存锁定不限制 * hard memlock unlimited |
/etc/sysctl.conf | net.ipv4.tcp_syncookies =1 开启SYNCookies net.ipv4.tcp_tw_reuse = 1 允许将TIME-WAIT sockets重新用于新的TCP连接, net.ipv4.tcp_tw_recycle = 1 开启TCP连接中TIME-WAIT sockets的快速回收 net.ipv4.tcp_fin_timeout = 30 修改系统默认的fin TIMEOUT 时间 net.ipv4.ip_local_port_range = 1024 65000 外向连接的端口范围 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_keepalive_time = 600 |
三、 Nginx 模块类别
| 模块名 | 含义 |
|---|---|
| http_gzip_static_module | 网页压缩模块 |
| http_stub_status_module | 状态统计模块 |
| http_rewrite_module | URL重写模块 |
| http_auth_basic_module | 用户认证模块 |
| http_fastcgi_module | fastcgi转发php-fpm模块 |
| http_ssl_module | https 安全加密认证模块 |
| http_proxy_module | 请求转发模块 |
| http_upstream_*_module | 反向代理负载均衡模块 |
| http_ stream_*_module | 四层反向代理模块 |
| http_limit conn module | 限制最大连接数模块 |
| http_limit reg module | 限制最大访问频率模块 |
四、查看Time wait 连接过多的方式
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
ss -s
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
###统计TIME_WAIT 连接的本地地址
netstat -an | grep TIME_WAIT | awk '{print $4}' | sort | uniq -c | sort -n -k1
五、Nginx常用模块
rewrite模块,实现重写功能;access模块:来源控制;ssl模块:安全加密;ngx_http_gzipmodule:网络传输压缩模块;ngx_http_proxy_module模块:实现代理;ngx_http_upstream_module模块:实现定义后端服务器列表;ngx_cache_purge:实现缓存清除功能。
六、Nginx反向代理会话保持
ip_hash、url hash、客户端IP一致性哈希算法hash $remote_addr consistent,是基于客户端IP/访问的URL做哈希缓存实现会话保持。sticky cookie insert,需要安装第三方的sticky模块,基于cookie来判断实现会话保持。- 配置后端应用服务器共享session或使用后端服务器自身通过相关机制保持session同步实现会话保持
文章详细介绍了如何调整Nginx的进程数和事件模型以提高性能,特别是针对Timewait的优化,包括软件层面的参数设置和系统内核的调整。同时,列出了Nginx的不同模块类别和查看Timewait连接的方法。此外,还讨论了Nginx反向代理中的会话保持策略。
2518

被折叠的 条评论
为什么被折叠?



