1. 程式人生 > >(二)nginx反向代理html,實現前後端分離(部署一套html呼叫多個服務)

(二)nginx反向代理html,實現前後端分離(部署一套html呼叫多個服務)

上篇部落格是一套頁面呼叫一個後端提供的服務,但是很多時候  我們後端會部署多個服務,為此部署配置一套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;

網友測試載入速度對比: