work_connections 定义每个worker进程允许的最大的同时连接数,总之,Nginx能够同时打开的最大文件数=worker_processes*work_connections。
注意:Linux系统默认规定进程打开的最大文件数为1024,因此,如果work_connections的值大于1024的话,则无法生效。例如,设置worker_connnects 65535,Nginx在启动之前需要运行命令ulimit -n 65535将进程支持的最大文件数改为65535。
关于http块的配置
log_format 定义Nginx的日志输出格式,main为该日志的输出格式名称,下面的指令如果想要调用该日志格式的话,直接引用main关键词即可。
access_log /var/log/nginx/access.log main; 定义Nginx被访问的日志,同时引用log_format定义的以main为命名的日志格式。
日志格式中各变量的含义如下,
$remote_addr 客户端IP地址
$remote_user 客户端用户名称
$time_local 访问的时间与时区
$request 请求的URL
$status 请求状态(http的请求状态码)
$body_bytes_sent 发送给客户端的文件主体大小
$http_referer 记录从哪个页面链接过来的
$http_user_agent 客户端浏览器的信息
$http_x_forwarded_for 客户端的IP地址
注意:$remote_addr和$http_x_forwarded_for同样都是访问服务器的客户端IP,但是这两者还是有区别的,对于前端设置了反向代理的服务器,$remote_addr是指反向代理服务器的IP地址,$http_x_forwarded_for是指真实的客户端IP地址
charset utf-8 设置网页的编码格式,默认编码为utf-8,还有gb2312等
server_names_hash_bucket_size
服务器名字的hash表大小,nginx的多个server_name是存放在哈希表中的。这样可以提高nginx速度
client_max_body_size 客户端请求单个文件的最大字节数
当请求的文件数大于该值的时候,服务器会报出413(Request Entity Too Large)的错误
client_header_buffer_size 指定客户端请求头的buffer大小,一般情况下1K大小足以
large_client_header_buffers <number> <size>
请求头大小超过client_header_buffer_size的值时,会将请求头的大小重新设置为large_client_header_buffers的值。例如large_client_header_buffers 4 128K,最大缓存量为4个128K。
上诉两个请求头的buffer的关系,受到http请求时,先根据client_header_buffer_size分配一个buffer,如果buffer无法容纳请求头,那么会根据large_client_header_buffers重新分配buffer。
keepalived_timeout 客户端保持连接的超时时间
client_header_timeout 客户端请求头读取超时时间
client_body_timeout 客户端请求主体读取超时时间
上述请求头和请求主体的超时时间,如果超过时间客户端还没有发送数据,则Nginx返回408(Request time out)的错误。
send_timeout 服务端响应的超时时间,对于已经建立的连接,如果客户端在超时时间内没有任何动作,Nginx断开连接。