Nginx.conf配置说明
2017-10-26 11:44
323 查看
#使用的用户和组 user www www; #指定工作衍生进程数(一般等于CPU的总核数或总核数两倍) worker_processes 1; #错误日志的存放目录,日志级别有dubug,info,notice,warn,error,crit error_log logs/error.log; error_log logs/error.log info; error_log logs/error.log notice; #指定pid存放路径 /usr/local/nginx/logs/nginx.pid; #指定文件描述符数量,如果不设的话上限就是系统的ulimit –n的数字,一般设置woker_connections的3-4倍 worker_rlimit_nofile 51200; events { #使用的网络I/O模型,Linux系统推荐采用epoll模型,FreeBSD系统推荐采用kqueue模型 use epoll; #允许的连接数 worker_connections 1024; #默认是on。设置为on后,多个worker按串行方式来处理连接,也就是一个连接只有一个worker被唤醒,其他的处于休眠状态。 #设置为off后,多个worker按并行方式来处理连接,也就是一个连接会唤醒所有的worker,知道连接分配完毕,没有取得连接的继续休眠。 #当你的服务器连接数不多时,开启这个参数会让负载有一定程度的降低。但是当服务器的吞吐量很大时,为了效率,请关闭这个参数。 multi_accept on; } http { include mime.types; default_type application/octet-stream; #设置使用字符集 charset gb2312; #保存服务器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size所控制,减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能如果 hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键 值。因此,如果Nginx给出需要增大 hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小 server_name_hash_bucket_size 128; #Nginx在处理请求时,先根据client_header_buffer_size配置的值分配一个buffer,如果分配的buffer无法容纳 request_line/request_header,那么就会再次根据large_client_header_buffers配置的参数分配large_buffer,如果large_buffer还是无法容纳,那么就会返回414(处理request_line)/400(处理request_header)错误;如果你的请求中的header都很大,那么应该使用client_header_buffer_size,这样能减少一次内存分配,如果你的请求中只有少量请求header很大,那么应该使用large_client_header_buffers,因为这样就仅需在处理大header时才会分配更多的空间,从而减少无谓的内存空间浪费 client_header_buffer_size 32k; large_client_header_buffers 2 32K; #设置客户端能上传的文件大小 client_max_body_size 10m; #指定是否使用OS的sendfile函数来传输文件,普通应用应该设为on,下载等IO重负荷的应用应该设为off。默认值是off sendfile on; #sendfile为on时这里也应该设为on,数据包会累积一下再一起传输,可以提高一些传输效率。 tcp_nopush on; #HTTP连接的持续时间。设的太长会使无用的线程变的太多。 #设成0关闭此功能。 #默认为75 keepalive_timeout 75; #小的数据包不等待直接传输。默认为on,看上去是和tcp_nopush相反的功能,但是两边都为on时nginx也可以平衡这两个功能的使用 tcp_nodelay on; #FastCGI相关参数超时时间的设置是为了改善网站的性能:减少资源占用,提高访问速度(单位默认是s) fastcgi_connect_timeout 300; #指nginx进程向fastcgi进程发送request的整个过程的超时时间 fastcgi_send_timeout 300; #指fastcgi进程向nginx进程发送response的整个过程的超时时间 fastcgi_read_timeout 300; #fastcgi_buffers指令指定的缓冲区大小 fastcgi_buffer_size 64k; #fastcgi_buffers指令指定的缓冲区大小 fastcgi_buffers 16 16k; ##建议为fastcgi_buffers的两倍 fastcgi_busy_buffers_size 128k; #在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍,设置上述数值设置太小时若负载上来时可能报502 Bad Gateway fastcgi_temp_file_write_size 128k; #开启FastCGI缓存并且为其制定一个名称,有效降低CPU负载,并且防止502错误 fastcgi_cache dingtm ##指定应答代码缓存时间为1小时 fastcgi_cache_valid 200 302 1h; #1天 fastcgi_cache_valid 301 1d; #1分钟 fastcgi_cache_valid any 1m; #缓存在fastcgi_cache_path指令inactive参数值时间内的最少使用次数 fastcgi_cache_min_uses 1; #打开GZIP压缩,实时压缩输出数据流 #gzip on; #从Content-Length中数值获取验证,小于1K会越压越大 #gzip_min_length 1k; #以16K为单位4倍的申请内存做压缩结果流缓存 gzip_buffers 4 16k; gzip_http_version 1.1; #压缩比率1-9,1压缩比最小处理速度最快,9压缩比最大但处理最慢且耗CPU gzip_comp_level 3; #压缩类型 gzip_types text/plain application/x-javascript text/css application/xml; #跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding" gzip_vary on; #设置Nginx访问日志格式 # $remote_addr与$http_x_forwarded_for记录客户端IP,$remote_user:记录客户端用户名称,$time_local:访问时间与时区 # $request:记录请求的URL与http协议,$status:记录请求状态,$body_bytes_sent:记录发送给客户端主体文件的大小 # $http_referer:记录从哪个页面链接访问过来的,$http_user_agent:记录客户端浏览器相关信息 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #配置虚拟机 server { #默认监听端口 listen 8090; #域名 server_name www.swk.com; #首页排序 index index.html index.htm index.php #站点根目录,即网站程序存放目录 root /data/project #错误页面 error_page 500 502 404 /error.html #伪静态,将www.swk.com/list...html的文件转发到index.php #rewrite ^/list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /index.php?m=content&c=index&a=lists&catid=$1&types=$2&country=$3&language=$4&age=$5&startDate=$6&typeLetter=$7&type=$8&page=$9 last; #location标签,根目录下的.svn目录禁止访问 location ~ /.svn/{ deny all; } location / { root html; index index.html index.htm; } #将符合js/css的文件等设定expires缓存参数要求浏览器缓存 location~ .*\.(js|css)?${ expires 30d; } location ~ ^/list{ #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。 proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache cache_one; #对不同的http状态码设置不同的缓存时间 proxy_cache_valid 200 301 302 304 1d; #proxy_cache_valid any 1d; #以域名、URI、参数组合成web缓存的key,Nginx根据key哈希,存储缓存内容到二级缓存目录 proxy_cache_key $host$uri$is_args$args; proxy_set_header Host $host; proxy_set_header x-Forwarded-For $remote_addr; proxy_ignore_headers "Cache-Control" "Expires" "Set-Cookie"; #proxy_ignore_headers Set-Cookie; #proxy_hide_header Set-Cookie; proxy_pass http://backend_server; add_header Nginx-Cache "$upstream_cache_status from km"; expires 1d; } access_log /data/logs/swk.com.log access; #nginx访问日志 } upstream bakend{ server 127.0.0.1:8027; server 127.0.0.1:8028; server 127.0.0.1:8029; hash $request_uri; } #支持的负载均衡策略 #1、轮询(默认) #每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 #2、Weight #指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 #upstream bakend { # server 192.168.0.14 weight=10; # server 192.168.0.15 weight=10; #} #3、ip_hash #每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 #upstream bakend { # ip_hash; # server 192.168.0.14:88; # server 192.168.0.15:80; #} #4、fair(第三方) #按后端服务器的响应时间来分配请求,响应时间短的优先分配。 #upstream backend { # server server1; # server server2; # fair; #} #5、url_hash(第三方) #按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 #例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法 #upstream backend { # server squid1:3128; # server squid2:3128; # hash $request_uri; # hash_method crc32; #} #upstream bakend{#定义负载均衡设备的Ip及设备状态}{ # ip_hash; # server 127.0.0.1:9090 down; # server 127.0.0.1:8080 weight=2; # server 127.0.0.1:6060; # server 127.0.0.1:7070 backup; #} #每个设备的状态设置为: #1.down表示单前的server暂时不参与负载 #2.weight为weight越大,负载的权重就越大。 #3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误 #4.fail_timeout:max_fails次失败后,暂停的时间。 #5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。 }
相关文章推荐
- nginx.conf的配置文件说明
- Nginx的nginx.conf配置文件中文注释说明
- Nginx 配置文件nginx.conf的完整配置说明
- Nginx 配置文件nginx.conf的完整配置说明
- nginx.conf一般配置说明
- Nginx 配置文件nginx.conf的完整配置说明
- nginx nginx.conf配置说明
- Nginx 配置文件nginx.conf的完整配置说明-<转>
- nginx.conf的完整配置说明
- Nginx 配置文件nginx.conf的完整配置说明
- nginx.conf配置说明
- Nginx 配置文件nginx.conf的完整配置说明
- Nginx 配置文件nginx.conf的完整配置说明
- Ngin的配置文件nginx.conf完整配置说明(包括fastcgi和负载均衡设置)
- Nginx(三):nginx.conf配置文件说明 【2】 文件结构和配置高亮
- nginx.conf的完整配置说明
- nginx.conf配置与说明
- nginx配置文件nginx.conf参数说明
- Nginx 配置文件nginx.conf的完整配置说明
- Nginx.conf 配置文件详细说明