nginx 安装统计模块,便于观察nginx的状态
在nginx安装时添加
--with-http_stub_status_module
配置:
进入nginx.conf
新建一个location 模块
location /status {
stub_status on;
access_log off;
allow 174.16.10.110;
deny all;
}
nginx响应请求
1:建立socket连接
2:打开文件,并沿socket返回
排查问题,也要注意观察这两点
主要从系统的dmesg 和 nginx的error_log 观察
socket层面
直接写脚本:
touch tcpopt.sh
echo 50000 > /proc/sys/net/core/somaxconn
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 0 > /proc/sys/net/ipv4/tcp_syncookies
1.修改nginx.conf 里面的 worker_connections 1024 数值改大点 10240
2.系统层面 more /proc/sys/net/core/somaxconn
查看后只有128
把这数值改大 改到50000
echo 50000 > /proc/sys/net/core/somaxconn
3. 加快tcp回收
查找文件 ls /proc/sys/net/ipv4 | grep tcp_tw_recycle
查看 cat /proc/sys/net/ipv4/tcp_tw_recycle 显示值 0 表示不进行快速回收
修改: echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
cat /proc/sys/net/ipv4/tcp_tw_reuse 显示值 0 表示不进行快速回收
修改: echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
4.洪水抵御
more /proc/sys/net/ipv4/tcp_syncookies 显示值 1 表示开启洪水抵御
修改: echo 0 > /proc/sys/net/ipv4/tcp_syncookies
文件层面
ulimit -n 查看最大连接数 数值为1024
修改值 ulimit -n 50000
nginx.conf 添加一个工作进程允许打开多少个文件:
在全局区 worker_processes 下面添加
work_rlimit_nofile 10000;
高并发网站需要注意
http 1.1 keepa live 减少http多次握手,持续连接
但对于高并发网站弊大于利,所以关掉;
nginx.conf 的
http{
keepalive_timeout 0;
}
php的memcached 连接可以设为长连接,可以提升少量速度