修改/etc/sysctl.conf
net.ipv4.tcp_syncookies = 1: 开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0
net.ipv4.tcp_tw_reuse = 1: 开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0
net.ipv4.tcp_tw_recycle = 1: 开启TCP连接中TIME-WAIT sockets的快速回收,默认为0
sysctl -p #立即生效
全局配置
worker_processes auto;
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 10240;
}
配置项 | 值 | 解释 |
---|---|---|
worker_processes | auto | 有多少个CPU就开启多少个worker进程 |
worker_cpu_affinity | auto | 将工作进程自动绑定到可用 CPU。默认情况下可能多个进程跑在一个CPU上,导致Nginx进程使用硬件资源不均匀,该配置尽可能地分配不同的Nginx进程给不同的CPU处理 |
worker_rlimit_nofile | 65535 | 配置worker进程最大打开文件数,一般等于ulimit -n的值。且需大于等于worker_connections的值 |
use epoll | Linux使用epoll的I/O多路复用模型,windows使用的icop | |
worker_connections | 10240 | 配置每个worker进程能够接受的最大并发连接数。需要设置linux系统的文件句柄数,Linux修改文件句柄数 |
http配置
http {
server_tokens off;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
gzip on;
gzip_disable "msie6";
gzip_proxied any;
gzip_min_length 1k;
gzip_comp_level 5;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
}
配置项 | 值 | 解释 |
---|---|---|
server_tokens | off | 隐藏版本号 |
server_tokens | on | 显著减少对CPU的占用 |
tcp_nopush | on | [默认off]是TCP_CORK的一部分具体实现,优化了传输的bits效率,选项仅在使用sendfile的时候才开启 |
keepalive_timeout | 60 | 指定keep-alive连接持续多久,单位是秒。设置低些可以让ngnix持续工作的时间更长 |
gzip | on | 启用gzip压缩 |
gzip_disable | msie6 | IE6对Gzip不怎么友好,不给它Gzip了 |
gzip_proxied | any | nginx 做前端代理时启用该选项,表示无论后端服务器的headers头返回什么信息,都无条件启用压缩 |
gzip_min_length | 1k | 不压缩临界值,大于1K的才压缩,一般不用改 |
gzip_comp_level | 5 | 压缩级别,1-10,数字越大压缩的越好,时间也越长 |
gzip_types | text/css | 进行压缩的文件类型,缺啥补啥就行了 |
server配置
server {
listen 8080;
server_name localhost;
location /abc/ {
proxy_read_timeout 240s;
proxy_pass http://192.168.1.2:8088;
}
}
配置项 | 值 | 解释 |
---|---|---|
proxy_read_timeout | 240s | nginx从upstream读取数据包的超时时间,默认60s |