1 # For more information on configuration, see: 2 # * Official English Documentation: http://nginx.org/en/docs/ 3 # * Official Russian Documentation: http://nginx.org/ru/docs/ 4 5 user nginx; 6 worker_processes 1;#定义了nginx对外提供web服务时的worker进程数,最优值取决于许多因素,包括(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式。不能确定的时候,将其设置为可用的CPU内核数将是一个好的开始(设置为“auto”将尝试自动检测它)。 7 worker_rlimit_nofile:10000;#更改worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了。 8 9 error_log /var/log/nginx/error.log; 10 #error_log /var/log/nginx/error.log notice; 11 #error_log /var/log/nginx/error.log info; 12 13 pid /var/run/nginx.pid; 14 15 #events模块中包含nginx中所有处理连接的设置。 16 events { 17 worker_connections 2048;#设置可由一个worker进程同时打开的最大连接数。 18 multi_accept on; #告诉nginx收到一个新连接通知后接受尽可能多的连接。 19 use epoll; #设置用于复用客户端线程的轮询方法。如果你使用Linux 2.6+,你应该使用epoll。如果你使用*BSD,你应该使用kqueue。(值得注意的是如果你不知道Nginx该使用哪种轮询方法的话,它会选择一个最适合你操作系统的) 20 } 21 22 23 http { 24 include /etc/nginx/mime.types; 25 default_type application/octet-stream;#设置文件使用的默认的MIME-type。 26 charset UTF-8; #设置我们的头文件中的默认的字符集 27 28 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 29 '$status $body_bytes_sent "$http_referer" ' 30 '"$http_user_agent" "$http_x_forwarded_for"'; 31 32 access_log /var/log/nginx/access.log main; 33 34 server_tokens off;#关闭在错误页面中的nginx版本数字,这样对于安全性是有好。 35 sendfile on;#sendfile()可以在磁盘和TCP socket之间互相拷贝数据(或任意两个文件描述符)。 36 tcp_nopush on;#告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。 37 #tcp_nodelay on;#设置nginx不缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性 38 keepalive_timeout 30;#客户端分配keep-alive链接超时时间,服务器将在这个超时时间过后关闭链接。我们将它设置低些。 39 40 #设置请求头和请求体(各自)的超时时间。我们也可以把这个设置低些。 41 client_header_timeout 10; 42 client_body_timeout 10; 43 44 reset_timedout_connection on; #nginx关闭不响应的客户端连接。(这将会释放那个客户端所占有的内存空间) 45 46 send_timeout 10; #指定客户端的响应超时时间 47 48 limit_conn_zone $binary_remote_addr zone=addr:5m; #设置用于保存各种key(比如当前连接数)的共享内存的参数。5m就是5兆字节,这个值应该被设置的足够大以存储(32K*5)32byte状态或者(16K*5)64byte状态。 49 limit_conn addr 100; #为给定的key设置最大连接数。 50 51 client_max_body_size 20m; 52 53 gzip on;#gzip压缩的形式发送数据 54 gzip_min_length 1000; # 设置对数据启用压缩的最少字节数。 55 gzip_comp_level 4; #设置数据的压缩等级。 56 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; #设置需要压缩的数据格式。 57 58 open_file_cache max=100000 inactive=20s; # 打开缓存的同时也指定了缓存最大数目,以及缓存的时间。 59 open_file_cache_valid 30s;#在open_file_cache中指定检测正确信息的间隔时间。 60 open_file_cache_min_uses 2; #定义了open_file_cache中指令参数不活动时间期间里最小的文件数。 61 open_file_cache_errors on; #指定了当搜索一个文件时是否缓存错误信息,也包括再次给配置中添加文件。 62 63 # Load config files from the /etc/nginx/conf.d directory 64 # The default server is in conf.d/default.conf 65 include /etc/nginx/conf.d/*.conf; 66 include /etc/nginx/conf.d/vhosts/*conf; 67 68 }