一:進入nginx目錄下的conf目錄
這是我的nginx安裝目錄:
[root@aliserver ~]# cd /usr/local/nginx/conf
二:編輯nginx.conf
[root@aliserver conf]# vi nginx.conf
三:設定伺服器群組
1:在http{}節點之間新增upstream設定。 (注意不要寫localhost,不然存取速度會很慢)
upstream nginxdemo { server 127.0.0.1:8081; #服务器地址1 server 127.0.0.1:8082; #服务器地址2 server 127.0.0.1:8082; #服务器地址3 server 127.0.0.1:8083; #服务器地址4 }
2:修改nginx監聽的連接埠號碼80
nginx預設連接埠是80,這裡我暫未更改,保持不變
server { listen 80; #默认是80,也可更改为其他的,当然已被占用的端口号不能写。 ...... }
3:用proxy_pass配置反向代理位址
在location\{}中,利;此處「http://」不能少,後面的位址要和第一步upstream定義的名稱保持一致(也就是nginxdemo這個名稱是自訂的,兩個地方需要一致)
location / { root html; index index.html index.htm; proxy_pass http://nginxdemo; #配置方向代理地址 }
配置完成後,如圖:
四:啟動nginx
我的安裝nginx路徑是 /usr/local/nginx
所以我的啟動指令是:
[root@aliserver ~]# /usr/local/nginx/sbin/nginx
因為nginx之前安裝時就已經啟動了,現在再啟動就報錯端口號被佔用
這時我們使用指令查看各埠號佔用情況
[root@aliserver ~]# netstat -ntpl
我們看到,nginx被9097這個pid佔用著,使用kill -9殺掉
[root@aliserver ~]# kill -9 9097
再次啟動nginx
[root@aliserver ~]# /usr/local/nginx/sbin/nginx
沒有任何反應,這就對了,這時在瀏覽器中輸入你伺服器位址
nginx啟動成功,至於配置是否正確,是否能負重勻衡,現在開始驗證。 。 。
五:驗證
我們都知道,nginx負載平衡時客戶端所有請求都經過nginx,那麼nginx就可以決定將這些請求轉發給誰,如果伺服器a的資源更充分(cpu更多、內存更大等等),伺服器b沒有伺服器a處理能力強,那麼nginx就會把更多的請求轉發到a,轉發較少的請求到伺服器b,這樣就做到了負載平衡,而且就算其中一台伺服器宕機了,對於使用者而言也能正常存取網站。
在驗證前,需要先做點準備。
1:準備一個簡單點的jsp,如:
#我一台伺服器上安裝了4個tomcat,所以我準備好了4個index.jsp檔
分別是
<title>tomcat8080<title> <h1>hellow tomcat_8080</h1> <title>tomcat8081<title> <h1>hellow tomcat_8081</h1> <title>tomcat8082<title> <h1>hellow tomcat_8082</h1> <title>tomcat8083<title> <h1>hellow tomcat_8083</h1>
這裡要注意的是:jsp檔的名字一定要是index.jsp,因為tomcat啟動成功的畫面,如圖:
讀取就是tomcat安裝目錄下的webapps/root/index.jsp
我的位址是:/usr/java/tomcat/tomcat_8080/ webapps/root
將先前準備好的4個index.jsp文件,覆寫每個tomcat預設的index.jsp檔案。
啟動各個tomcat
[root@aliserver bin]# ./startup.sh
這時我們再在瀏覽器輸入 xxx.xxx.xx.xx:8080 你會發現,不在出現那隻小貓了,而是。 。 。 。 。 。
以上是Linux下Nginx負載平衡多個tomcat如何配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!