nginx要支持高并发。还需要对linux内核参数做一定的优化
vim /etc/sysctl.conf
fs.file.max = 999999
表示进程,比如一个worker进程,可以打开的最大句柄数。这个参数直接限制对大的并发连接数。
net.ipv4.tcp_tw_reuse = 1
表示允许将time-wait的状态的socket重新用于新的tcp连接。
对于服务器来说很有意义。因为服务器总会有大量的time-wait状态的连接。
net.ipv4.tcp_keepalive_time = 600
这个参数表示当keepalive启用时。TCP发送keepalive消息的频度。
默认是2小时。若将其设置小点。可以更快的清理无效的内存。
net.ipv4.tcp_fin_timeout =30
这个参数表示当服务器主动关闭连接的时候。socket保持在FIN-WAIT-2状态的最大时间
net.ipv4.tcp_max_tw_buckets =5000
这个参数表示操作系统允许TIME_WAIT套接字数量的最大值,
如果超过这个数字,TIME_WAIT套接字将立刻清楚并打印警告信息。该参数默认为
18000,过多的TIME_WAIT的套接子会使web服务器变慢
net.ipv4.ip_local_port_range =1024 61000
这个参数定义了在UDP和TCP连接中本地端口的取值范围
net.ipv4.tcp_rmem =4096 32768 262142
这个参数定义了TCP接受缓存(用于tcp接收滑动窗口)
net.ipv4.tcp_wmem =4096 32768 262142
这个参数定义了TCP发送缓存(用于tcp发送滑动窗口)的最小值 默认值 最大值
net.core.netdev_max_backlog =8096
当网卡接受数据包的速度大于内核处理的速度时,会有一个队列保存这些
数据包。这个参数表示该队列的最大值。
net.core.rmem_default =262144
这个参数表示内核套接子接收缓存区默认的大小
net.core.wmem_default =262144
这个参数表示内核套接字发送缓存区默认的大小
net.core.rmem_max=2097152
内核套接字接受缓存区的最大大小
net.core.wmem_max=2097152
内核套接字发送缓存区的最大大小
net.ipv4.tcp_syncookies=1
该参数与性能无关,用于解决TCP的SYN攻击。
net.ipv4.tcp_max_syn.backlog=1024
这个参数表示TCP三次握手建立阶段接受SYN请求队列的最大长度。
默认为1024,将其设置得大一下。可以使出现nginx繁忙来不及accept新连接的时候。
linux不至于丢失客户连接请求。
如果是默认启动方式
执行nginx
/usr/local/nginx/sbin/nginx
指定配置文件
/usr/local/nginx/sbin/nginx -c /tmp/nginx.conf
指定安装目录的启动方式
/usr/local/nginx/sbin/nginx -p /usr/local/nginx
/usr/local/nginx/sbin/nginx -t (-q 可以不把error级别以下的信息输出的屏幕)
测试配置文件是否有错
-v -V
停止服务
-s stop