Skip to main content

Nginx optimization

Nginx 优化

提升文件句柄

编辑/etc/security/limits.conf,加上:

nginx   soft    nofile  65535  
nginx   hard    nofile  65535  

查看cpu核心数

[root@ef ~]# grep processor /proc/cpuinfo | wc -l
8  

根据核心数和句柄数设置nginx线程数和连接数

修改nginx.conf, 注意不要占满全部资源:

### 以下是全局设置,不在server{}中
# 指定nginx的用户
user  nginx;  
# 设置线程数
worker_processes  8;  
# 将线程和CPU核心绑定,提升效率
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;  
# 设置每个线程连接数,使用epoll模型
events {  
    worker_connections  8192;
    use epoll;
    multi_accept on;
}

设置nginx buffer

server {  
# 开启gzip压缩
gzip on;  
# 设置Body的最大值(比如POST文件)
client_max_body_size    20m;  
# 设置头部最大值,一般直接访问的话头部仅1k
client_header_buffer_size    4k;  
# POST数据最大接收长度
client_body_buffer_size    32k  
}

设置nginx timeout

server {  
# 接收body超时
client_body_timeout 12;  
# 接收头部超时
client_header_timeout 12;  
# 长连接超时
keepalive_timeout 15;  
# 发送数据超时
send_timeout 10;  
}