nginx. conf 상세 설명 및 부하 균형 설정

7287 단어 nginx.conf
nginx. conf 상세 설명
#  Nginx         
user www www;

#nginx   ,       CPU    。
worker_processes 8;

#          ,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;

#    
pid /var/run/nginx.pid;

#  nginx              ,             (    ulimit -n) nginx     ,  nginx        ,     ulimit -n      。
worker_rlimit_nofile 65535;

#          
events
{
#       ,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll   Linux 2.6             I/O  ,    FreeBSD  ,  kqueue  。
use epoll;
connections 20000;  #            
#         (     =   *   )                ,      ulimit -n       
worker_connections 65535;
}


#  http   
http
{
include mime.types; #             
types {
  text/html  html;
  image/gif  gif;
  image/jpeg jpg;
  image/png  png;
  }
default_type application/octet-stream; #      


#charset utf-8; #    
server_names_hash_bucket_size 128; #      hash   
client_header_buffer_size 32k; #        
large_client_header_buffers 4 64k; #     
client_max_body_size 8m; #     
sendfile on; #          ,sendfile    nginx    sendfile       ,         on,             IO     ,    off,        I/O    ,       。  :               off。
autoindex on; #        ,       ,    。
tcp_nopush on; #      
tcp_nodelay on; #      
keepalive_timeout 120; #       ,    
open_file_cache max=65535 inactive=20s;  #max      ,          ,inactive                   。
open_file_cache_valid 30s;  #                
open_file_cache_min_uses 1; #open_file_cache    inactive              ,        ,               ,   ,         inactive         ,     。
server_tokens off;          #     Nginx    


#FastCGI              :      ,      ,        。             。
sendfile on;                #      sendfile()  
  tcp_nopush on;              #  linux TCP_CORK,sendfile      ,           
  keepalive_timeout 60;       #keepalive    
  tcp_nodelay on;             #  TCP_NODELAY    keepalive   
  fastcgi_connect_timeout 300; #       FastCGI     
  fastcgi_send_timeout 300;    # FastCGI         ,               FastCGI         。
  fastcgi_read_timeout 300;    #  FastCGI       ,                FastCGI       。
  fastcgi_buffer_size 64k;     #       fastcgi_buffers          
  fastcgi_buffers 16 16k;      #                   FastCGI   
  fastcgi_busy_buffers_size 128k;  #   fastcgi_buffers   
  fastcgi_temp_file_write_size 128k;   #   fastcgi_temp_path         ,    fastcgi_buffers   ,                     502 Bad Gateway
  fastcgi_cache dingtm     #  FastCGI            ,    CPU  ,    502  
  fastcgi_cache_valid 200 302 1h;  #           1  
  fastcgi_cache_valid 301 1d;      #1 
  fastcgi_cache_valid any 1m;      #   1  
  fastcgi_cache_min_uses 1;        #   fastcgi_cache_path  inactive             


#gzip    
gzip on; #  gzip    
gzip_min_length 1k; #        
gzip_buffers 4 16k; #     
gzip_http_version 1.0; #    (  1.1,     squid2.5   1.0)
gzip_comp_level 2; #    
gzip_types text/plain application/x-javascript text/css application/xml;
include   vhosts/*.conf;      #    
#    ,       text/html,          ,         ,      warn。
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m; #    IP          


upstream blog.ha97.com {
#upstream     ,weight   ,            。weigth      ,             。
server 192.168.80.121:80 weight=3;
server 192.168.80.122:80 weight=2;
server 192.168.80.123:80 weight=3;
}


#       
server
{
#    
listen 80;
#       ,     
server_name www.ha97.com ha97.com;
index index.html index.htm index.php;
root /data/www/ha97;
location ~ .*.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
#        
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 10d;
}
#JS CSS      
location ~ .*.(js|css)?$
{
expires 1h;
}
#      
log_format access ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
#            
access_log /var/log/nginx/ha97access.log access;


#  “/”       
location / {
proxy_pass http://127.0.0.1:88;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
#   Web       X-Forwarded-For      IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#            ,  。
proxy_set_header Host $host;
client_max_body_size 10m; #                
client_body_buffer_size 128k; #                  ,
proxy_connect_timeout 90; #nginx            (      )
proxy_send_timeout 90; #           (      )
proxy_read_timeout 90; #     ,         (      )
proxy_buffer_size 4k; #       (nginx)             
proxy_buffers 4 32k; #proxy_buffers   ,     32k     
proxy_busy_buffers_size 64k; #        (proxy_buffers*2)
proxy_temp_file_write_size 64k;
#         ,     ,  upstream    
}


#    Nginx     
location /NginxStatus {
stub_status on;
access_log on;
auth_basic “NginxStatus”;   #  
auth_basic_user_file conf/htpasswd;
#htpasswd        apache   htpasswd     。
auth_basic_user_file conf/.htpasswd;   #    ,     ,           
}


#            
#  jsp      tomcat resin  
location ~ .(jsp|jspx|do)?$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;
}
#       nginx       tomcat resin
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{ expires 15d; }
location ~ .*.(js|css)?$
{ expires 1h; }
}
}

부하 균형 설정 http 노드 는 다음 과 같 습 니 다.
#  http   ,                  
http {
     #  mime  ,   mime.type    
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    #      
    access_log    /var/log/nginx/access.log;

    #            

    #。。。。。。。。。。

    #            
     upstream mysvr {
    #weigth      ,             
    server 192.168.8.1x:3128 weight=5;#    Squid  3128  
    server 192.168.8.2x:80  weight=1;
    server 192.168.8.3x:80  weight=6;
    }

   upstream mysvr2 {
    #weigth      ,             

    server 192.168.8.x:80  weight=1;
    server 192.168.8.x:80  weight=6;
    }

   #        
   server {
    #  192.168.8.x 80  
        listen       80;
        server_name  192.168.8.x;

      # aspx           
    location ~ .*\.aspx$ {

         root   /root;      #               
          index index.php index.html index.htm;   #           

          proxy_pass  http://mysvr ;#    mysvr         

          #               .

          proxy_redirect off;

          #   Web       X-Forwarded-For      IP
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          client_max_body_size 10m;    #                
          client_body_buffer_size 128k;  #                  ,
          proxy_connect_timeout 90;  #nginx            (      )
          proxy_send_timeout 90;        #           (      )
          proxy_read_timeout 90;         #     ,         (      )
          proxy_buffer_size 4k;             #       (nginx)             
          proxy_buffers 4 32k;               #proxy_buffers   ,     32k    ,    
          proxy_busy_buffers_size 64k;    #        (proxy_buffers*2)
          proxy_temp_file_write_size 64k;  #         ,     ,  upstream    

       }

     }
}

좋은 웹페이지 즐겨찾기