#指定开启的工作进程数,建议与CPU线程数一致 worker_processes 4; #定义全局错误日志文件输出,日志级别详细程度高到低debug,info,notice,warn,error,crit error_log logs/error.log info; #指定进程id的存储文件位置 pid logs/nginx.pid; #一个nginx进程打开的最多文件句柄打开数,建议与服务器ulimit -n配置值一致 worker_rlimit_nofile 65535; events { #multi_accept on; #设置复用客户端线程的轮询方法(Nginx高性能的关键),可选select/poll/kqueue(BSD使用)/epoll等,Linux 2.6+建议使用最高效的epoll use epoll; #指定单个工作进程的最大并发连接数,所有工作进程的连接数之和需小于系统的最大句柄打开数ulimit -n # 1.在作为反向代理时,根据经验值,预估最大连接数=worker_processes*worker_connections/4,各系统可参考此公式评估单机Nginx的最大承载并发 # 2.在作为http服务时,根据经验值,预估最大连接数=worker_processes*worker_connections/2,各系统可参考此公式评估单机Nginx的最大承载并发 # ulimit -n 配置要配到65535 # 使用 /nginx_status 接口,可以查看Active connections: n,这个n是超不过worker_connections的配置的 worker_connections 20480; } http { #设置客户端请求头读取超时时间,单位秒。如果超过这个时间,客户端还没有发送任何数据,Nginx将返回408Request time out错误 client_header_timeout 60; #设置客户端请求主体读取超时时间,单位秒。如果超过这个时间,客户端还没有发送任何数据,Nginx将返回408Request time out错误 client_body_timeout 60; #指定数据回传客户端的超时时间。如果超过这个时间数据还未回传完毕,Nginx将会关闭连接 send_timeout 60; #开启gzip压缩功能,节省带宽 gzip on; #设置允许压缩的页面最小字节数; 这里表示如果文件小于10个字节,就不用压缩,因为没有意义,本来就很小 gzip_min_length 10k; #设置压缩缓冲区大小,此处设置为16个8K内存作为压缩结果流缓存 gzip_buffers 16 8k; #压缩版本。针对压缩的http版本,默认1.1 gzip_http_version 1.1; #设置压缩比率,取值1到10,级别越高,压缩比就越大,节省了带宽资源,但同时也消耗更多CPU资源 gzip_comp_level 6; #指定压缩的类型,线上配置时尽可能配置多的压缩类型【文本类的有意义,视频图片等不需要解压缩】 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; # 【跟 Squid 等缓存服务有关,一般不需要】 # 开启后在响应头中会增加Vary: Accept-Encoding,用作告知客户端已启用压缩 gzip_vary on; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持) gzip_disable "MSIE [1-6]\.(?!.*SV1)"; #无条件压缩所有结果数据【和上面很多配置冲突,一般不需要】 gzip_proxied any; #引入子配置,可以减少主配置文件的复杂度 include server1.conf; }