一、全局快
#所有用户具有启停权限
user www www;
# 设置为auto则自动适配进程, worker_processes最多开启8个,8个以上性能提升不会再提升了。
worker_processes 8;
# 错误日志分类,日志类型 [ DEBUG | info | notice | warn | error | crit | alert | emerg]
error_log logs/error.log error
error_log logs/warn.log warn
#配置文件存放路径
pid logs/nginx.pid;
# Nginx最多可以打开文件数
worker_rlimit_nofile 65535;
二、events块块
events {
accept_mutex off;
multi_accept off;
use epoll;
worker_connections 2048;
}
accept_mutex:当一个新连接到达时,如果激活了accept_mutex,那么多个Worker将以串行方式来处理,其中有一个Worker会被唤醒,其他的Worker继续保持休眠状态;如果没有激活accept_mutex,那么所有的Worker都会被唤醒,不过只有一个Worker能获取新连接,其它的Worker会重新进入休眠状态,这就是惊群问题,建议关闭。use 设置用于复用客户端线程的轮询方法。如果你使用Linux 2.6+,你应该使用epoll。如果你使用*BSD,你应该使用kqueue。multi_accept 告诉nginx收到一个新连接通知后接受尽可能多的连接。 worker_connections 设置可由一个worker进程同时打开的最大连接数。
三、http块
1、http全局快
http {
#定义
include /etc/nginx/mime.types; # 只是一个在当前文件中包含另一个文件内容的指令
default_type text/html; # 设置文件使用的默认的MIME-type。
charset UTF-8; # 设置我们的头文件中的默认的字符集
#高效传输设置
server_tokens off; # 并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数 字,这样对于安全性是有好处的。
sendfile on; # 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载
tcp_nopush on; # 必须在sendfile开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量(将响应头和正文的开始部分一起发送,而不一个接一个的发送。)
tcp_nodelay on; #告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值。
#日志存储
access_log off; # 设置nginx是否将存储访问日志。关闭这个选项可以让读取磁盘IO操作更快(aka,YOLO)
error_log /var/log/nginx/error.log crit; # 告诉nginx只能记录严重的错误
#连接超时设置
keepalive_timeout 10; # 给客户端分配keep-alive链接超时时间。服务器将在这个超时时间过后关闭链接。我们将它设置低些可以让ngnix持续工作的时间更长。
client_header_timeout 10; # 设置请求头的超时时间
client_body_timeout 10; # 设置请求头的超时时间
reset_timedout_connection on; # 告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间
send_timeout 10; # 指定客户端的响应超时时间。这个设置不会用于整个转发器,而是在两次客户端读取操作之间。如果在这段时间内,客户端没有读取任何数据,nginx就会关闭连接。
limit_conn_zone $binary_remote_addr zone=addr:5m; # 设置用于保存各种key(比如当前连接数)的共享内存的参数。5m就是5兆字节,这个值应该被设置的足够大以存储(32K*5)32byte状态或者(16K*5)64byte状态。
limit_conn addr 100; # 为给定的key设置最大连接数。这里key是addr,我们设置的值是100,也就是说我们允许每一个IP地址最多同时打开有100个连接。
# gzip压缩
gzip on; # Nginx启用压缩功能需要安装ngx_http_gzip_module模块
gzip_disable "msie6"; # 为指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容。
gzip_static on; # 告诉nginx在压缩资源之前,先查找是否有预先gzip处理过的资源
gzip_proxied any; # 允许或者禁止压缩基于请求和响应的响应流。我们设置为any,意味着将会压缩所有的请求
gzip_min_length 1000; # 设置对数据启用压缩的最少字节数
gzip_comp_level 6; # 设置数据的压缩等级。
gzip_types text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; # 设置需要压缩的数据格式
#缓存
open_file_cache max=100000 inactive=20s; # 打开缓存的同时也指定了缓存最大数目,以及缓存的时间。默认不启用
open_file_cache_valid 30s; # 在open_file_cache中指定检测正确信息的间隔时间。
open_file_cache_min_uses 2; # 定义了open_file_cache中指令参数不活动时间期间里最小的文件数。
open_file_cache_errors on; # 指定了当搜索一个文件时是否缓存错误信息,也包括再次给配置中添加文件
#加载server配置
include vhost/default.conf
include vhost/*.conf
}
2、server块
server {
listen 80 default_server ; #加了default_server标识默认虚拟主机
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / { # /表示根目录,该配置表示Nginx默认打开/www下的index.html
root /www; #根目录,该配置表示Nginx默认打开/www
index index.html index.htm; #若index.html 不存在,则打开index.htm
}
#添加jeeCms代理 npl 20160920
location /jeeCms/ { # 过滤形如localhost:80/jeeCms/的url
proxy_pass [http://192.168.2.8:8070/jeeCms/;#](http://192.168.2.8:8070/jeeCms/;#)转发至形如[http://192.168.2.8:8070/jeeCms/](http://192.168.2.8:8070/jeeCms/)的地址
proxy_redirect off; # 关闭重定向
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#添加ctp-war代理 npl 20160920
location /ctp-war/ {# 过滤形如localhost:80/ctp-war/的url
proxy_pass [http://192.168.2.8:8020/ctp-war/;](http://192.168.2.8:8020/ctp-war/;) #转发至形如[http://192.168.2.8:8070/ctp-war/](http://192.168.2.8:8070/ctp-war/)的地址
proxy_redirect off;# 关闭重定向
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}