文章目录
Nginx配置参数优化
Nginx作为高性能web服务器,即使不特意调整配置参数也可以处理大量的并发请求
1.针对worker进程的优化
worker_processes:该参数表示启动几个工作进程,建议和本机CPU核数保持一致,每一核CPU处理一个进程
worker_rlimit_nofile:它表示Nginx最大可用的文件描述符个数,需要配合系统的最大描述符,建议设置为102400,还需要在系统里执行ulimit -n 102400才可以(临时生效),也可以直接修改配置文件/etc/security/limits.conf使其永久生效
添加:
* soft nofile 102400
* hard nofile 102400
worker_connections:该参数用来配置每个Nginx worker进程最大处理的连接数,这个参数也决定了该Nginx服务器最多能处理多少客户端请求(worker_processes * worker_connections),建议把该参数设置为10240,不建议太大
2.针对http和tcp的优化
use epoll:使用epoll模式的事件驱动模型,该模型为Linux系统下最优方式
multi_accept on:使每个worker进程可以同时处理多个客户端请求
sendfile on:使用内核的FD文件传输功能,可以减少user mode和kernel mode的切换,从而提升服务器性能
tcp_nopush on:当tcp_nopush设置为on时,会调用tcp_cork方法进行数据传输,使用该方法会产生这样的效果:当应用程序产生数据时,内核不会立马封装包,而是当数据量积累到一定量时才会封装,然后传输
tcp_nodelay on:不缓存data-sends(关闭 Nagle 算法),这个能够提高高频发送小数