高并发思路:
socket层面分析:
->nginx:
1.子进程允许打开的连接(worker_connections)
2.http连接快速关闭(keep_alivetime 0;)//http请求完之后,马上断开连接
->系统:
1.最大连接数(somaxconn)
2.加快tcp连接的回收(recycle)
3.空的tcp是否允许回收利用(reuse)
4.洪水攻击(不做洪水抵御)
文件层面分析:
->nginx:
1.子进程允许打开的文件(worker_rlimit_nofile)
->系统:
1.ulimit -n (设置一个比较大的值)
nginx单机1W并发优化实现步骤:
系统层面优化流程:
步骤一:
修改nginx配置文件:
events {
worker_connections 10240;//增大子进程的连接数
}
步骤二:
修改系统的最大连接数:
1.查看系统的最大连接数
more /proc/sys/net/core/somaxconn
2.修改系统最大连接数
echo 50000 > /proc/sys/net/core/somaxconn
步骤三:
开启系统对tcp的快速回收
1.查看系统是否对tcp进行快速回收
cat /proc/sys/net/ipv4/tcp_tw_recycle
2.开启系统对tcp的快速回收
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
3.开启系统对空的tcp进行回收
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
步骤四:
关闭系统的洪水抵御
echo 0 > /proc/sys/net/ipv4/tcp_syncookies
文件层面优化流程:
1.设置系统最大文件连接数:
ulimit -n 50000
2.设置nginx配置文件
加上:
worker_rlimit_nofile 10000;(加到http上下文,放到全局)
keepalive_timeout 0;