Nginx反向代理以及配置优化

来源:互联网 发布:java 布尔类型 编辑:程序博客网 时间:2024/05/20 16:11

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

user www wwwworker_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

 

 



 

原创粉丝点击