WEB开发网
开发学院服务器WEB服务器Nginx Nginx反向代理以及配置优化 阅读

Nginx反向代理以及配置优化

 2013-05-05 14:21:11 来源:WEB开发网   
核心提示:下面配置包含了,nginx配置的一个比较全面的反向代理的例子:user www wwwworker_processes 8;events { use epoll; worker_connections 10240;}pid /opt/work/log/nginx.pid;error_log

下面配置包含了,nginx配置的一个比较全面的反向代理的例子:

user www www
worker_processes  8;



events {
    use epoll;
    worker_connections  10240;
}

pid       /opt/work/log/nginx.pid;
error_log /dev/null error;

http {

    include /opt/nginx/conf/mime.types;
    default_type     text/html;

     log_format  pv  '[$time_local]|$remote_addr|$cookie_SUV|$args|$http_referer|$http_user_agent';

     log_format   main '$request_time $remote_addr $cookie_SUV [$time_local]  $status '  '"$request" $body_bytes_sent "$http_referer" '  '"$http_user_agent" "$http_x_forwarded_for"'  '"$cookie_Fr"';
    
     log_format  pbmain    '$remote_addr - $remote_user [$time_local] "$request" '
                                '$status $body_bytes_sent "$http_user_agent"';
     access_log off;

     sendfile    on;


     keepalive_timeout  0;

     gzip  on;
    
    #允许客户端请求的最大单个文件字节数
     client_max_body_size    200m;
    upload_progress proxied 8m;
    
    #DNS服务器ip
    resolver 192.168.1.1;
    
    proxy_set_header Host $http_host;
    proxy_set_header x-forwarded-for  $remote_addr;
    proxy_cache_key  "$scheme$host$request_uri";
    proxy_cache_path /opt/work/cache levels=1:2:1 keys_zone=js_cache:100m max_size=1024m inactive=15d;
    proxy_cache_valid any 15d;

    upstream backend {
        ip_hash;
        server  127.0.0.1:8080 weigth=4 max_fails=2 fail_timeout=30s;
        server  127.0.0.1:8081 weigth=3 max_fails=2 fail_timeout=30s;
    }
    upstream liveBackends {
       server   192.168.1.15:9090;
       server   192.168.1.16:9090;
       #备机
       server   192.168.1.17:9090 backup;
     }

    server{
        listen 80;
        server_name www.myserver1.com;
    	error_log   /opt/work/log/nginx_error.log error;
        client_max_body_size    200m;
        proxy_set_header Host $http_host;
        proxy_set_header x-forwarded-for  $remote_addr;
        proxy_buffer_size         64k;
        proxy_buffers             32 64k;
    
        #查看服务状态
        location /server-status {
               stub_status on;
               access_log   off;
               allow all;
        }
        location ^~ /pv        {
            access_log  /opt/work/log1/nginx_access.log  pv;
            proxy_pass http://backend;
        }
  
        location ^~ /cc.do
        {
            proxy_pass http://backend;
        }
        location ^~/favicon.ico{
            alias /usr/local/src/web/favicon.ico;
         }

       location ^~ /pv2        {
            access_log  /opt/work/log2/nginx_access.log  pv;
	    access_log  /opt/work/log/main/nginx_access_main.log main;
            error_log   /opt/work/log/error/nginx_error.log error;
            return 204;
        }
    
       location /proxy/
        {
	    #后端返回502,504,执行超时等错误,自动将请求转发到upstream负载池中另一台服务器
            proxy_next_upstream  http_502 http_504 error timeout invalid_header;
	    proxy_pass http://backend;  
        }
        #禁止访问除以外的其他目录
        location /{
           deny all;
        }
    }

     server{
        listen       80;
        server_name  www.myserver2.com;
        root         /www; 
	location ~ t1\.(gif)$ {
		root /www;
		expires -1;
                access_log      /data/log/access.log  pbmain;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            
	}

        location ~ t2.(gif)$ {
                root /www;
                expires -1;             
                access_log      /data/log/access.log  pbmain;
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
             if ($args ~ "ltype=1(&|$)") { 	 							
  		proxy_pass http://liveBackends;
	     }
        }

       
	location /server-status {
                        stub_status     on;
                        access_log      off;
                        allow           10.0.0.0/8;
                        allow           192.168.0.0/16;
                        deny            all;
         }
        error_page  404              /404.html;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

配置完后通过命令 nginx -t (或者nginx -t -c 配置文件路径)来检查配置文件是否有语法错误,没有错误后就可以启动了 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ,用默认路径配置文件的话可以不加-c

从容停止kill -QUIT nginx主进程号

平滑重启 kill -HUP nginx主进程号

配置文件修改可以通过不停机reload的方式实现加载。 nginx -s reload
 

Tags:Nginx 反向 代理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接