1. 程式人生 > 實用技巧 >五、nginx 配置例項-負載均衡

五、nginx 配置例項-負載均衡

  實現效果:瀏覽器位址列輸入地址 http://ng/c/c.html ,負載均衡效果,平均 8080和8081

5.1、實驗程式碼

  • 首先準備兩個同時啟動的 Tomcat windows和linux上隔一個tomcat,兩臺 tomcat 裡面 webapps 目錄中,建立名稱是 c 資料夾,在 c資料夾中建立 頁面 c.html,確保能直接通過訪問tomcat訪問到。

  • 在 nginx.conf 中進行配置
http {
    .........
     
     upstream myserver{
        server 192.168.116.131:8080
        server 
192.168.116.1:8080; } server { listen 9991; server_name ng; location / { proxy_pass http://myserver; proxy_connect_timeout 10; } } }

  隨著網際網路資訊的爆炸性增長,負載均衡(load balance)已經不再是一個很陌生的話題, 顧名思義,負載均衡即是將負載分攤到不同的服務單元,既保證服務的可用性,又保證響應 足夠快,給使用者很好的體驗。快速增長的訪問量和資料流量催生了各式各樣的負載均衡產品, 很多專業的負載均衡硬體提供了很好的功能,但卻價格不菲,這使得負載均衡軟體大受歡迎, nginx 就是其中的一個,在 linux 下有 Nginx、LVS、Haproxy 等等服務可以提供負載均衡服 務,而且 Nginx 提供了4種分配伺服器策略。

5.2、Nginx分配伺服器策略。

(1)、輪詢(預設)

  每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器 down 掉,能自動剔除。

(2)、weight

  weight 代表權,重預設為1,權重越高被分配的客戶端越多

  指定輪詢機率,weight 和訪問比率成正比,用於後端伺服器效能不均的情況。 例如:

upstream myserver{
        server 192.168.116.131:8080 weight=1;
        server 192.168.116.1:8080 weight=1;
    }

(3)、ip_hash

  每個請求按訪問 ip 的 hash 結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決 session 的問題。例如:

upstream myserver{
        ip_hash;
        server 192.168.116.131:8080;
        server 192.168.116.1:8080;
    }

(4)、fair(第三方)

  按後端伺服器的響應時間來分配請求,響應時間短的優先分配。

upstream myserver{
        fair;
        server 192.168.116.131:8080;
        server 192.168.116.1:8080;
    }