Nginx反向代理以及配置優化
下面配置包含了,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
來自:http://blog.csdn.net/liuzhoulong/article/details/8886585
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!