nginx 配置

nginx.conf
worker_processes//有争议不能确定的时候,将其设置为可用的CPU内核数将是一个好的开始(设置为“auto”将尝试自动检测它)
worker_rlimit_nofile 102400;//设置了这个后,修改worker_connections值时,是不能超过worker_rlimit_nofile的这个值

gzip  on;
gzip_buffers 4 16k;
gzip_min_length 1024;
gzip_http_version 1.1;
gzip_comp_level 4;
gzip_vary on;
gzip_types      text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_disable    "MSIE [1-6]\.";

Events模块
worker_connections 2048//设置可由一个worker进程同时打开的最大连接数。如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高
use epoll;
multi_accept  on;//告诉nginx收到一个新连接通知后接受尽可能多的连接

HTTP 模块
server_tokens  off//并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的
sendfile  on//可以让sendfile()发挥作用。sendfile()可以在磁盘和TCP socket之间互相拷贝数据(或任意两个文件描述符)。Pre-sendfile是传送数据之前在用户空间申请数据缓冲区。之后用read()将数据从文件拷贝到这个缓冲区,write()将缓冲区数据写入网络。sendfile()是立即将数据从磁盘读到OS缓存。因为这种拷贝是在内核完成的,sendfile()要比组合read()和write()以及打开关闭丢弃缓冲更加有效(更多有关于sendfile)。
tcp_nopush on//告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。
tcp_nodelay  on//告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值
reset_timeout_connection on //告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间。

open_file_cache max=100000 inactive=20s; //打开缓存的同时也指定了缓存最大数目,以及缓存的时间。我们可以设置一个相对高的最大时间,这样我们可以在它们不活动超过20秒后清除掉。
open_file_cache_valid 30s; //在open_file_cache中指定检测正确信息的间隔时间。
open_file_cache_min_uses 2; //定义了open_file_cache中指令参数不活动时间期间里最小的文件数。
open_file_cache_errors on; //指定了当搜索一个文件时是否缓存错误信息,也包括再次给配置中添加文件。我们也包括了服务器模块,这些是在不同文件中定义的。如果你的服务器模块不在这些位置,你就得修改这一行来指定正确的位置。


你可能感兴趣的:(nginx 配置)