nginx 配置文件基本详解

Posted on Posted in nginx
Tips: 本文创建于2015年11月9日,已超过 2 年,内容或图片可能已经失效!

解读一下nginx的基本配置文件中的作用

  1. nginx -V 查看安装时的选项  
  2.   
  3. user  nobody    nobody;     #主模块指令,制定nginxworder进程运行用户以及组  
  4. worker_processes  1;    #制定nginx要开启的进程数。每个nginx进程平均耗费10-12M内存。一般与cpu数量相等  
  5.   
  6. error_log  logs/error.log;  #错误日志。级别有debug/info/notice/warn/error/crit,debug最详细,crit最少。  
  7. #error_log  logs/error.log  notice;  
  8. #error_log  logs/error.log  info;  
  9.   
  10. #pid        logs/nginx.pid; #指定pid的存储位置  
  11. worker_rlimit_nofile    65535;  #绑定worker进程和cpu,kernel 2.4以上可用  
  12.   
  13. events {    #指定nginx的工作模式和链接数上限  
  14.     use epoll;  #指定工作模式,select/poll/kqueue/epoll/rtsig/ /dev/poll  
  15.     worker_connections  1024;   #定义每个进程的最大连接数量。最大客户端连接数量 max_client=worker_processes*worker_connections。作为反向代理时,max_client=worker_processes*worker_connections/4  
  16. }  
  17. # 进程最大连接数量由linux系统进程限制,执行ulimit -n 65536后设置才能生效  
  18.   
  19. http {  
  20.     include       mime.types;   #包含外部文件  
  21.     default_type  application/octet-stream; #默认为二进制流,为文件类型未定义时使用这种方式。  
  22.   
  23.     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  #格式化日志,main为日志输出的格式,在下面的access.log中使用  
  24.     #                  '$status $body_bytes_sent "$http_referer" '  
  25.     #                  '"$http_user_agent" "$http_x_forwarded_for"';  
  26.   
  27.     #access_log  logs/access.log  main;  
  28.     client_max_body_size    20m;    #允许客户端请求的最大单个文件字节数  
  29.     client_header_buffer_size   32k;    #客户端请求头中的headerbuffer大小  
  30.     large_client_header_buffers 4   128k;   #制定客户端请求中较大的消息头的缓存数量和大小,4*128  
  31.       
  32.     sendfile        on; #开启高效文件传输模式  
  33.     tcp_nopush     on;  #防止网络阻塞  
  34.     tcp_nodelay     on; #防止网络阻塞  
  35.   
  36.     keepalive_timeout  65;  #设置客户端连接保持活动的超时时间  
  37.     client_header_timeout   10; #设置客户端请求头读取超市时间,如果超市,返回408  
  38.     client_body_timeout     10; #设置客户端请求主题读取超时时间。如果超时,返回408  
  39.     send_timeout            10; #用于指定相应客户端的超时时间。如果客户端没有任何活动,nginx将会关闭连接。  
  40.     gzip  on;   #开启gzip压缩  
  41.     gzip_min_length     1k;     #设置允许压缩的页面最小字节数。建议设置成大于1K的字节数,否则可能越压越大。  
  42.     gzip_buffers    4   16k;    #申请4个单位为16K的内存作为压缩结果流缓存。  
  43.     gzip_http_version   1.1;    #识别http协议版本。  
  44.     gzip_comp_level 2;  #压缩等级  
  45.     gzip_types  text/plain application/x-javascript text/css    application/xml;    #压缩类型,无论是否制定text/html总是被压缩< /span>  
  46.       
  47.     upstream abc.com {  #指定负载均衡的模块名  
  48.     ip_hash;    #每个请求按访问IP的hash结果分配。这样一个IP固定访问一个后端服务器,解决session问题。  
  49.     server 192.168.1.2:80;  
  50.     server 192.168.1.3:80 down;     #表示不参与负载,backup其他机器出现故障或忙时,启用  
  51.     server 192.168.1.4:8009 max_fails=3 fail_timeout=20s;   #允许失败的次数。超过时,返回proxy_next_upstream模块定义的错误  
  52.     server 192.168.1.5:8080;  
  53.     }  
  54.     #当负载时ip_hash时,后端服务器在负载均衡中状态不能是weight和backup  
  55.       
  56.       
  57.     server {    #一个server,一个虚拟主机  
  58.         listen       80;      
  59.         server_name  localhost;     #制定IP或者域名,多个,用空格分开  
  60.   
  61.         charset utf-8;  
  62.   
  63.         access_log  logs/host.access.log  main; #虚拟主机的存放日志  
  64.   
  65.         location / {  
  66.             root   html;  
  67.             index  index.html index.htm;  
  68.         }  
  69.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {    #指定静态文件的过期时间  
  70.             root /web/wwwroot/abc;  
  71.             expires 30d;  
  72.         }  
  73.         location ~ ^/(upload|html)/ {   #upload和html下的所有文件都交给nginx处理,upload和html包含在abc目录中  
  74.             root /web/wwwroot/abc;  
  75.             expires 30d;  
  76.         }  
  77.         location ~ .*.jsp$ {    #jsp所有文件交给8080端口处理  
  78.             index index.jsp;  
  79.             proxy_pass http://localhost:8080;  
  80.         }  
  81.         location /nginxstats {  
  82.             stub_status     on;     #启用工作统计功能  
  83.             access_log      logs/nginxstats.log;  
  84.         }  
  85.           
  86.         # 输出  
  87.         #Active connections: 2      #表示当前活跃数  
  88.         #server accepts handled requests  
  89.         # 2 2 1 #共处理的2个连接,2次握手,1个请求  
  90.         #Reading: 1 Writing: 1 Waiting: 0 #reading 表示nginx读取到客户端header信息数,writing表示返回客户端的header信息数,waiting表示已经处理完、正在等候下一次请求的驻留连接数  
  91.   
  92.         error_page  404              /404.html; #错误的返回页面大小一定要超过512,为了兼容IE  
  93.   
  94.         # redirect server error pages to the static page /50x.html  
  95.         #  
  96.    &n
    bsp;    error_page   500 502 503 504  /50x.html;  
  97.         location = /50x.html {  
  98.             root   html;  
  99.         }  
  100.   
  101.     }  
  102. }  
» 转载请注明来源:呢喃 » nginx 配置文件基本详解