1.系统和nginx是否可以建立多个socket连接
2.系统和nginx是否允许一次性打开多个文件
一、建立socket连接,从操作系统和nginx两个层面分析
1.从nginx:(1)http连接快速关闭即配置nginx的 keep_alivetime:0。因为在HTTP 1.0中协议是 请求-》连接-》断开,即每次请求之后都需要再次握手,但是随着web应用的丰富出现很多css文件和其他资源文件,这就使得要求是否一次请求可以请求多个文件,这就是HTTP 1.1。
(2)子进程允许打开的连接即配置nginx的(worker_connections)
2.从系统层面:(1)修改最大连接数 somaxconn(具体路径在 /proc/sys/net/core/somaxconn)
(2)加快tcp连接的回收,即修改(/proc/sys/net/ipv4/tcp_tw_recycle)
(3)空闲的tcp是否允许回收利用,即修改(/proc/sys/net/ipv4/tcp_tw_reuse)
(4)是否对洪水抵御做相应的cookie操作,修改(/proc/sys/net/ipv4/tcp_syncookies)
二、打开文件方面
1.nginx:子进程允许打开的文件数量:配置添加:worker_rlimit_nofile
2.系统:设置ulimit -n 设置一个较大的值
排查
1.查看nginx错误日志
# tail logs/error.log
2.查看是否可以建立多个socket连接
# dmesg | tail
3./proc 目录下的文件表示linux操作系统运行状态下的值,所以修改 /proc下文件的值可以立即生效
# more /proc/sys/net/core/somaxconn 查看操作系统最大的TCP连接数
# echo 50000 > /proc/sys/net/core/somaxconn 将操作系统最大的TCP连接数改成50000
# cat /proc/sys/net/ipv4/tcp_tw_recycle 查看是否进行快速的TCP回收,为0表示不进行TCP回收,为1进行回收 recycle
# echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle 加快tcp回收
# cat /proc/sys/net/ipv4/tcp_tw_reuse 查看空的TCP是否回收利用reuse
# echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse 回收空闲tcp
# more /proc/sys/net/ipv4/tcp_syncookies 查看是否进行洪水抵御,即单个IP进行大量的连接操作
# echo 0 > /proc/sys/net/ipv4/tcp_syncookies 不进行洪水抵御操作
# ulimit -n 查看打开最大的文件数量默认1024
# vim /etc/nginx/nginx.conf 打开nginx配置文件,配置nginx打开最大的文件数,添加以下配置
2.系统和nginx是否允许一次性打开多个文件
一、建立socket连接,从操作系统和nginx两个层面分析
1.从nginx:(1)http连接快速关闭即配置nginx的 keep_alivetime:0。因为在HTTP 1.0中协议是 请求-》连接-》断开,即每次请求之后都需要再次握手,但是随着web应用的丰富出现很多css文件和其他资源文件,这就使得要求是否一次请求可以请求多个文件,这就是HTTP 1.1。
(2)子进程允许打开的连接即配置nginx的(worker_connections)
2.从系统层面:(1)修改最大连接数 somaxconn(具体路径在 /proc/sys/net/core/somaxconn)
(2)加快tcp连接的回收,即修改(/proc/sys/net/ipv4/tcp_tw_recycle)
(3)空闲的tcp是否允许回收利用,即修改(/proc/sys/net/ipv4/tcp_tw_reuse)
(4)是否对洪水抵御做相应的cookie操作,修改(/proc/sys/net/ipv4/tcp_syncookies)
二、打开文件方面
1.nginx:子进程允许打开的文件数量:配置添加:worker_rlimit_nofile
2.系统:设置ulimit -n 设置一个较大的值
排查
1.查看nginx错误日志
# tail logs/error.log
2.查看是否可以建立多个socket连接
# dmesg | tail
3./proc 目录下的文件表示linux操作系统运行状态下的值,所以修改 /proc下文件的值可以立即生效
# more /proc/sys/net/core/somaxconn 查看操作系统最大的TCP连接数
# echo 50000 > /proc/sys/net/core/somaxconn 将操作系统最大的TCP连接数改成50000
# cat /proc/sys/net/ipv4/tcp_tw_recycle 查看是否进行快速的TCP回收,为0表示不进行TCP回收,为1进行回收 recycle
# echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle 加快tcp回收
# cat /proc/sys/net/ipv4/tcp_tw_reuse 查看空的TCP是否回收利用reuse
# echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse 回收空闲tcp
# more /proc/sys/net/ipv4/tcp_syncookies 查看是否进行洪水抵御,即单个IP进行大量的连接操作
# echo 0 > /proc/sys/net/ipv4/tcp_syncookies 不进行洪水抵御操作
# ulimit -n 查看打开最大的文件数量默认1024
# vim /etc/nginx/nginx.conf 打开nginx配置文件,配置nginx打开最大的文件数,添加以下配置
worker_rlimit_nofile 65535;