user www-data;
pid /var/run/nginx.pid;
worker_processes auto; #nginx 对外提供 web 服务时的 worder 进程数
worker_rlimit_nofile 100000; #worker 进程的最大打开文件数限制
events {
worker_connections 2048; #一个 worker 进程同时打开的最大连接数,如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高
multi_accept on; #告诉 nginx 收到一个新连接通知后接受尽可能多的连接
use epoll; #设置用于复用客户端线程的轮询方法
}
http {
server_tokens off; #关闭在错误页面中的 nginx 版本数字
sendfile on; #sendfile()可以在磁盘和 TCP socket 之间互相拷贝数据
tcp_nopush on; #告诉 nginx 在一个数据包里发送所有头文件,而不一个接一个的发送
tcp_nodelay on; #告诉 nginx 不要缓存数据,而是一段一段的发送,当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值
access_log off; #access_log 设置 nginx 是否将存储访问日志
error_log /var/log/nginx/error.log crit;
keepalive_timeout 10; #给客户端分配 keep-alive 链接超时时间
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; #允许每一个 IP 地址最多同时打开有 100 个连接
include /etc/nginx/mime.types;
default_type text/html;
charset UTF-8;
gzip on; #告诉 nginx 采用 gzip 压缩的形式发送数据
gzip_disable "msie6"; #指定的客户端禁用 gzip 功能
gzip_proxied any; #允许或者禁止压缩基于请求和响应的响应流
gzip_min_length 1000; #设置对数据启用压缩的最少字节数。如果一个请求小于 1000 字节,我们最好不要压缩它
gzip_comp_level 6; #设置数据的压缩等级。这个等级可以是 1-9 之间的任意数值,9 是最慢但是压缩比最大的
gzip_types text/plain 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; #指定了当搜索一个文件时是否缓存错误信息,也包括再次给配置中添加文件
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}