Nginx负载均衡配置实例
五、Nginx負載均衡配置實例
實現效果:訪問 www.123.com/edu/a.html的時候,將請求平均分配到8080和8081端口。
準備工作:
1)準備兩臺Tomcat服務器(端口號為8080和8081)
2)在兩臺Tomcat里面的webapps目錄下,創建目錄edu,在目錄edu下存放一個a.html文件。
在第四章 Nginx反向代理配置實例2 中,我們已經準備了兩臺Tomcat服務器,并且在8080端口下,我們已經創建好了edu目錄,寫好了a.html文件。
現在,我們要做的就是在8081端口的Tomcat服務器下也創建一個edu目錄,并寫一個a.html文件。
cd
cd tomcat8081/apache-tomcat-8.5.72/
mkdir edu
cp movie/a.html edu/
此時,如果還未啟動tomcat,記得啟動,已經啟動的該步驟可以跳過。(可以通過 ps -ef | grep tomcat 查看進程是否啟動)
#啟動tomcat8080
cd
cd tomcat8080/apache-tomcat-8.5.72/bin/
./startup.sh
#啟動tomcat8081
cd
cd tomcat8081/apache-tomcat-8.5.72/bin/
./startup.sh
完成后,我們就可以在Nginx的配置文件中進行負載均衡的配置了。
cd /usr/local/nginx/conf/
vim nginx.conf
內容如下:
解釋一下:
首先在http塊里面加upstream 然后取一個名字(我這里取名叫myserver)。然后寫我們需要進行負載均衡的服務器的地址。這里因為是自己的8080和8081端口,所以直接寫自己的ip:端口號即可。
然后再http塊的server中,我們寫自己監聽的端口號,并修改server_name為服務器的ip地址。
最后在location / 中,我們加一個proxy_pass,讓他將請求轉發到 http://myserver。這個myserver其實就是我們上面定義的upstream。他會幫我們把接收到的請求分發到他里面定義的8080和8081端口。
如此,我們對負載均衡的配置就完成了。現在,我們來重啟一下Nginx。
cd …/sbin/
./nginx -s stop
./nginx
然后我們來訪問我們的/edu/a.html。
可以看到,訪問同一個地址,Nginx幫我們已經實現了負載均衡,在兩個Tomcat之間分發我們的請求。
Nginx對于負載均衡提供了幾種分配方式:
-
輪詢(默認):每個請求按時間順序逐一分配到不同的后端服務器中,如果某些個后端服務器宕機,能自動剔除。
-
weight:weight代表每個服務器的權重值,默認為1,權重越高,被分配的用戶數就越多。這種分配方式主要用于后端服務器性能不均的情況。使用方法如下:
此時,訪問8081端口的次數會是8080端口的兩倍。(我試了一下,就是連續訪問兩次8081后,就訪問一次8080,然后再訪問兩次8081,再訪問一次8080,一直這樣下去)
-
ip_hash:每個請求按照用戶的ip的hash結果分配。這樣每個訪客固定訪問一個后端服務器,可以覺得session問題。(簡單說就是,A用戶訪問我們的服務器的時候,如果一開始訪問的是8080端口,那么他就一直訪問的都是8080端口)
-
fair:按后端服務器的響應時間分配,響應時間越短,越早被分配。(就是看8080和8081端口哪個比較快響應就讓用戶訪問哪個)
總結
以上是生活随笔為你收集整理的Nginx负载均衡配置实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 360天擎造成打印机无法共享的问题解决
- 下一篇: Mac下使用MAMP配置Nginx