Nginx:性能优化
1.limit配置
如果想了解更多请查看linux limit
在/etc/security/limits.conf
末尾添加如下内容
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* soft nproc 65535
2.最大文件打开数&IO模型&单进程最大连接数
修改/etc/nginx/nginx.conf
文件
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
# 工作进程最大打开文件数
worker_rlimit_nofile 65535;
events {
# 使用epoll模型
use epoll;
# 单个进程最大连接数
worker_connections 20480;
}
...
3.CPU亲和
将Nginx工作进程与逻辑CPU绑定,减少Nginx工作进程在逻辑CPU中切换的性能损耗。
3.1.查看逻辑CPU数量
htop
3.2.绑定逻辑CPU
修改/etc/nginx/nginx.conf
文件
user nginx;
# 工作进程数量
worker_processes 2;
# 绑定工作进程与逻辑CPU
worker_cpu_affinity 01 10;
...
4.gzip
修改/etc/nginx/nginx.conf
文件
...
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
# gzip配置
gzip on;
# IE6及以下浏览器不使用gzip
gzip_disable "MSIE [1-6]\.";
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_types text/plain application/json text/javascript application/x-javascript text/css application/xml;
gzip_vary on;
include /etc/nginx/conf.d/*.conf;
}