nginx配置文件详解
时间:2015-03-28 00:13 来源:linux.it.net.cn 作者:IT
列出了nginx默认配置文件 default.conf大部分命令,并加以中文注释说明,实际配置中可能没有这么复杂,这里只能作为一个参考阅读文档!
#使用的用户和组
user www www;
#指定工作衍生进程数(一般等于CPU的总核数或者总核数的两倍),每个进程耗费10MB-12MB内存
worker_processes 8;
#指定错误日志存放的路径,错误日志记录级别可选项为:[debug | info | noticd | warn | error | crit]
error_log logs/error.log;
#指定错误日志级别
#error_log logs/error.log notice;
#error_log logs/error.log info;
#指定pid存放的路径,文件内记录当前nginx主进程的ID,kill -HUP 'logs/nginx.pid'
#pid logs/nginx.pid;
#指定文件描述符数量
worker_rlimit_nofile 51200;
#工作模式及连接数上限
events {
#提高linux的io操作选项,Linux系统推荐采用epoll模型,FreeBSD系统推荐采用kequeue,linux下建议开启
use epoll;
#允许最大连接数
worker_connections 51200;
}
http {
#mimie.types 浏览器请求的文件媒体类型
include mime.types;
#用来告诉浏览器请求的文件媒体类型
default_type application/octet-stream;
#设置使用的字符集,如果一个网站有多种字符集,请不要随便设置,应该让程序员在HTML代码中通过Meta标签设置
#charset gb2312;
#日志记录格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#日志名称,和日志记录格式采用main
#access_log logs/access.log main;
server_names_hash_bucket_size 128;
#用于设置客户端请求的Header头缓冲区大小,大部分情况1KB大小足够。不能超过large_client_header_buffers缓冲区大小的设置
client_header_buffer_size 32k;
#该指令用于设置客户端请求的Header头缓冲区大小,默认值为4KB。
large_client_header_buffers 4 32k;
#设置客户端能够上传的文件大小,默认为1m
client_max_body_size 8m;
sendfile on;
#该指令允许或禁止使用FreeBSD上的TCP_NOPUSH,或者Linux上的TCP_CORK套接字选项。
#tcp_nopush on;
#keepalive_timeout 0该指令可以使客户端到服务器端的连接持续有效
keepalive_timeout 60;
#该指令允许或禁止使用套接字选项TCP_NODELAY,仅适用于keep-alive连接
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
#该指令用于设置upstream模块等待FastCGI进程发送数据的超时时间,默认值为60s;
fastcgi_read_timeout 200;
#该指令设置FastCGI服务器相应头部的缓冲区大小。通常情况,该缓冲区大小设置等于fastcgi_buffers指令设置的一个缓冲区的大小。
fastcgi_buffer_size 64k;
#该指令设置了读取FastCGI进程返回信息的缓冲区数量和大小。
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_writer_size 128k;
#开启gzip压缩,对网页文件、css、js、xml等启动gzip压缩,减少数据传输量,提高访问速度。
gzip on;
#该指令允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。
gzip_min_length 1k;
#设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。下面的设置代表16k为单位,按照原始数据大小以16k为单位的4倍申请内存。
gzip_buffers 4 16k;
#识别http的协议版本。
gzip_http_version 1.1;
#gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理速度最慢(传输快但比较消耗cpu)
gzip_comp_level 2;
#匹配mime类型进行压缩,无论是否指定,“text/html”类型总是会被压缩的。
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#该指令定义了一个数据区,其中记录会话状态信息。 定义一个叫“crawler”的记录去,总容量为10MB,以变量$binary_remote_addr作为会话的判断基准(即一个地址一个会话)
#limit_zone crawler $binary_remote_addr 10m;
#允许客户端请求的最大单个文件字节数
client_max_body_size 300m;
#缓冲区代理缓冲用户端请求的最大字节数,可以理解为先保存到本地再传给用户
client_body_buffer_size 128k;
#跟后端服务器连接的超时时间_发起握手等候响应超时时间
proxy_connect_timeout 600;
#连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理
proxy_read_timeout 600;
#后端服务器数据回传时间_就是在规定时间内后端服务器必须传完所有的数据
proxy_send_timeout 600;
#代理请求缓存区_这个缓存区会保存用户的头信息以供Nginx进行规则处理_一般只要能保存下头信息即可
proxy_buffers 16k;
#同上 告诉Nginx保存单个用的几个Buffer最大用多大空间
proxy_buffers 4 32k;
#如果系统很忙的时候可以申请更大的proxy_buffers 官方推荐*2
proxy_busy_buffers_size 64k;
#proxy缓存临时文件的大小
proxy_temp_file_write_size 64k;
#缓存 proxy_temp_path和proxy_cache_path必须在同一个分区
proxy_temp_path /data2/proxy_temp_path;
#该指令用于设置缓存文件的存放路径,设置缓存区名称为cache_one ,内存缓存空间大小为200M,自动清除超过1天没有被访问的缓存数据,硬盘缓存空间大小为30GB
proxy_cache_path /data2/proxy_cache_path levels=1:2 keys_zone=cache_one:2000m inactive=1d max_size=30g;
(责任编辑:IT)
列出了nginx默认配置文件 default.conf大部分命令,并加以中文注释说明,实际配置中可能没有这么复杂,这里只能作为一个参考阅读文档! #使用的用户和组 user www www; #指定工作衍生进程数(一般等于CPU的总核数或者总核数的两倍),每个进程耗费10MB-12MB内存 worker_processes 8; #指定错误日志存放的路径,错误日志记录级别可选项为:[debug | info | noticd | warn | error | crit] error_log logs/error.log; #指定错误日志级别 #error_log logs/error.log notice; #error_log logs/error.log info; #指定pid存放的路径,文件内记录当前nginx主进程的ID,kill -HUP 'logs/nginx.pid' #pid logs/nginx.pid; #指定文件描述符数量 worker_rlimit_nofile 51200; #工作模式及连接数上限 events { #提高linux的io操作选项,Linux系统推荐采用epoll模型,FreeBSD系统推荐采用kequeue,linux下建议开启 use epoll; #允许最大连接数 worker_connections 51200; } http { #mimie.types 浏览器请求的文件媒体类型 include mime.types; #用来告诉浏览器请求的文件媒体类型 default_type application/octet-stream; #设置使用的字符集,如果一个网站有多种字符集,请不要随便设置,应该让程序员在HTML代码中通过Meta标签设置 #charset gb2312; #日志记录格式 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #日志名称,和日志记录格式采用main #access_log logs/access.log main; server_names_hash_bucket_size 128; #用于设置客户端请求的Header头缓冲区大小,大部分情况1KB大小足够。不能超过large_client_header_buffers缓冲区大小的设置 client_header_buffer_size 32k; #该指令用于设置客户端请求的Header头缓冲区大小,默认值为4KB。 large_client_header_buffers 4 32k; #设置客户端能够上传的文件大小,默认为1m client_max_body_size 8m; sendfile on; #该指令允许或禁止使用FreeBSD上的TCP_NOPUSH,或者Linux上的TCP_CORK套接字选项。 #tcp_nopush on; #keepalive_timeout 0该指令可以使客户端到服务器端的连接持续有效 keepalive_timeout 60; #该指令允许或禁止使用套接字选项TCP_NODELAY,仅适用于keep-alive连接 tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; #该指令用于设置upstream模块等待FastCGI进程发送数据的超时时间,默认值为60s; fastcgi_read_timeout 200; #该指令设置FastCGI服务器相应头部的缓冲区大小。通常情况,该缓冲区大小设置等于fastcgi_buffers指令设置的一个缓冲区的大小。 fastcgi_buffer_size 64k; #该指令设置了读取FastCGI进程返回信息的缓冲区数量和大小。 fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_writer_size 128k; #开启gzip压缩,对网页文件、css、js、xml等启动gzip压缩,减少数据传输量,提高访问速度。 gzip on; #该指令允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。 gzip_min_length 1k; #设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。下面的设置代表16k为单位,按照原始数据大小以16k为单位的4倍申请内存。 gzip_buffers 4 16k; #识别http的协议版本。 gzip_http_version 1.1; #gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理速度最慢(传输快但比较消耗cpu) gzip_comp_level 2; #匹配mime类型进行压缩,无论是否指定,“text/html”类型总是会被压缩的。 gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; #该指令定义了一个数据区,其中记录会话状态信息。 定义一个叫“crawler”的记录去,总容量为10MB,以变量$binary_remote_addr作为会话的判断基准(即一个地址一个会话) #limit_zone crawler $binary_remote_addr 10m; #允许客户端请求的最大单个文件字节数 client_max_body_size 300m; #缓冲区代理缓冲用户端请求的最大字节数,可以理解为先保存到本地再传给用户 client_body_buffer_size 128k; #跟后端服务器连接的超时时间_发起握手等候响应超时时间 proxy_connect_timeout 600; #连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理 proxy_read_timeout 600; #后端服务器数据回传时间_就是在规定时间内后端服务器必须传完所有的数据 proxy_send_timeout 600; #代理请求缓存区_这个缓存区会保存用户的头信息以供Nginx进行规则处理_一般只要能保存下头信息即可 proxy_buffers 16k; #同上 告诉Nginx保存单个用的几个Buffer最大用多大空间 proxy_buffers 4 32k; #如果系统很忙的时候可以申请更大的proxy_buffers 官方推荐*2 proxy_busy_buffers_size 64k; #proxy缓存临时文件的大小 proxy_temp_file_write_size 64k; #缓存 proxy_temp_path和proxy_cache_path必须在同一个分区 proxy_temp_path /data2/proxy_temp_path; #该指令用于设置缓存文件的存放路径,设置缓存区名称为cache_one ,内存缓存空间大小为200M,自动清除超过1天没有被访问的缓存数据,硬盘缓存空间大小为30GB proxy_cache_path /data2/proxy_cache_path levels=1:2 keys_zone=cache_one:2000m inactive=1d max_size=30g; (责任编辑:IT) |