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