Nginx + Tomcat 配置负载均衡集群
生活随笔
收集整理的這篇文章主要介紹了
Nginx + Tomcat 配置负载均衡集群
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、前期環境準備
準備兩個解壓版tomcat,如何同時啟動兩個tomcat,請看我的另一篇文章《一臺機器同時啟動多個tomcat》。
nginx官網下載解壓版nginx。
創建一個簡單的web項目。為了直觀的區分訪問的哪個tomcat,在頁面寫上標記8081、8082。
分別部署到對應的tomcat下。
?2、配置nginx
進入nginx-1.10.1\conf路徑,修改配置文件nginx.conf。1、配置服務器組,在http{}節點之間添加upstream配置(33行位置)。(注意不要寫localhost,不然訪問速度會很慢)upstream big-screen{server 127.0.0.1:8081; #服務器地址1server 127.0.0.1:8082; #服務器地址2
}
2、修改nginx監聽的端口號80,改為8080。server {listen 8080;......
}
3、在location\{}中,利用proxy_pass配置反向代理地址;此處“http://”不能少,后面的地址要和第一步upstream定義的名稱保持一致。
location / {root html;index index.html index.htm;proxy_pass http://big-screen; #配置反向代理地址
}3、啟動nginx和tomcat,訪問
我是Windows系統,所以直接在nginx-1.10.1目錄下雙擊nginx.exe即可。可在任務管理器中查看
最后在瀏覽器輸入地址:http://localhost:8080/big-screen,每次訪問就會輪流訪問tomcat了(如果F5刷新不管用,建議試試鼠標指針放到地址欄,點擊Enter鍵)。到這里,一個非常簡單的負載均衡就配置完成了,是不是很簡單呢,O(∩_∩)O哈哈~二、nginx負載均衡策略 1、輪詢(默認) 每個web請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。upstream nginxDemo {server 127.0.0.1:8081;server 127.0.0.1:8082;} 2、最少鏈接 web請求會被轉發到連接數最少的服務器上。upstream nginxDemo {least_conn;server 127.0.0.1:8081;server 127.0.0.1:8082;} 3、weight 權重 指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況,weight默認是1。#服務器A和服務器B的訪問比例為:2-1;比如有3個請求,前兩個會訪問A,三個訪問B,其它規則和輪詢一樣。upstream nginxDemo {server 127.0.0.1:8081 weight=2; #服務器Aserver 127.0.0.1:8082; #服務器B} 4、ip_hash 每個請求按訪問ip的hash值分配,這樣同一客戶端連續的Web請求都會被分發到同一服務器進行處理,可以解決session的問題。當后臺服務器宕機時,會自動跳轉到其它服務器。upstream nginxDemo {ip_hash;server 127.0.0.1:8081 weight=2; #服務器Aserver 127.0.0.1:8082; #服務器B} 基于weight的負載均衡和基于ip_hash的負載均衡可以組合在一起使用。5、url_hash(第三方) url_hash是nginx的第三方模塊,nginx本身不支持,需要打補丁。nginx按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存服務器、文件服務器、靜態服務器時比較有效。缺點是當后端服務器宕機的時候,url_hash不會自動跳轉的其他緩存服務器,而是返回給用戶一個503錯誤。upstream nginxDemo {server 127.0.0.1:8081; #服務器Aserver 127.0.0.1:8082; #服務器Bhash $request_url;} 6、fair(第三方) 按后端服務器的響應時間來分配請求,響應時間短的優先分配。upstream nginxDemo {server 127.0.0.1:8081; #服務器Aserver 127.0.0.1:8082; #服務器Bfair;}
?
最后在瀏覽器輸入地址:http://localhost:8080/big-screen,每次訪問就會輪流訪問tomcat了(如果F5刷新不管用,建議試試鼠標指針放到地址欄,點擊Enter鍵)。到這里,一個非常簡單的負載均衡就配置完成了,是不是很簡單呢,O(∩_∩)O哈哈~二、nginx負載均衡策略 1、輪詢(默認) 每個web請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。upstream nginxDemo {server 127.0.0.1:8081;server 127.0.0.1:8082;} 2、最少鏈接 web請求會被轉發到連接數最少的服務器上。upstream nginxDemo {least_conn;server 127.0.0.1:8081;server 127.0.0.1:8082;} 3、weight 權重 指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況,weight默認是1。#服務器A和服務器B的訪問比例為:2-1;比如有3個請求,前兩個會訪問A,三個訪問B,其它規則和輪詢一樣。upstream nginxDemo {server 127.0.0.1:8081 weight=2; #服務器Aserver 127.0.0.1:8082; #服務器B} 4、ip_hash 每個請求按訪問ip的hash值分配,這樣同一客戶端連續的Web請求都會被分發到同一服務器進行處理,可以解決session的問題。當后臺服務器宕機時,會自動跳轉到其它服務器。upstream nginxDemo {ip_hash;server 127.0.0.1:8081 weight=2; #服務器Aserver 127.0.0.1:8082; #服務器B} 基于weight的負載均衡和基于ip_hash的負載均衡可以組合在一起使用。5、url_hash(第三方) url_hash是nginx的第三方模塊,nginx本身不支持,需要打補丁。nginx按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存服務器、文件服務器、靜態服務器時比較有效。缺點是當后端服務器宕機的時候,url_hash不會自動跳轉的其他緩存服務器,而是返回給用戶一個503錯誤。upstream nginxDemo {server 127.0.0.1:8081; #服務器Aserver 127.0.0.1:8082; #服務器Bhash $request_url;} 6、fair(第三方) 按后端服務器的響應時間來分配請求,響應時間短的優先分配。upstream nginxDemo {server 127.0.0.1:8081; #服務器Aserver 127.0.0.1:8082; #服務器Bfair;}
?
原文鏈接:https://www.cnblogs.com/mfc-itblog/p/6666211.html
?
寫博客是為了記住自己容易忘記的東西,另外也是對自己工作的總結,文章可以轉載,無需版權。希望盡自己的努力,做到更好,大家一起努力進步!
如果有什么問題,歡迎大家一起探討,代碼如有問題,歡迎各位大神指正!
轉載于:https://www.cnblogs.com/summary-2017/p/9023611.html
總結
以上是生活随笔為你收集整理的Nginx + Tomcat 配置负载均衡集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手把手教你查看android系统源码
- 下一篇: CentOS7部署Flask+Gunic