(二)nginx反向代理html,實現前後端分離(部署一套html呼叫多個服務)
阿新 • • 發佈:2019-01-27
上篇部落格是一套頁面呼叫一個後端提供的服務,但是很多時候 我們後端會部署多個服務,為此部署配置一套nginx代理。
可以實現為nginx配置多種策略,如下說明:
負載均衡策略 1、輪詢(預設) 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。 upstream backserver { server 192.168.0.14; server 192.168.0.15; } 2、指定權重 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。 upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; } 3、IP繫結 ip_hash 每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。 upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }
nginx.conf配置例項(第二種:指定權重):
upstream tomcatserver1 { server 192.168.1.9:8081 weight=2; server 192.168.1.29:8081 weight=10; } server { listen 8082; listen 192.168.1.29:8082; server_name 192.168.1.29; location / { proxy_pass http://tomcatserver1; index index.html index.htm; } }
每個裝置的狀態引數可設定為:
1.down 表示單前的server暫時不參與負載
2.weight 預設為1.weight越大,負載的權重就越大,請求次數就越多。
3.max_fails :允許請求失敗的次數預設為1.當超過最大次數時,返回proxy_next_upstream 模組定義的錯誤
4.fail_timeout:max_fails次失敗後,暫停的時間。
5.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。
這樣配置可以簡單實現請求多服務,但是缺點是服務宕機不會轉向請求其他正常服務。
在除錯階段出現點小問題,直接全部kill掉nginx服務,命令:
taskkill /fi "imagename eq nginx.exe" /f
gzip優化:開啟gzip壓縮,降低傳輸流量,減短響應時間:
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml application/json ;
gzip_vary on;
網友測試載入速度對比: