1. 程式人生 > >Nginx學習--(2)單機部署Nginx+tomcat叢集環境

Nginx學習--(2)單機部署Nginx+tomcat叢集環境

單機部署Nginx+tomcat叢集環境

1、寫在前面

關於Nginx的安裝與tomcat的安裝這裡就不進行介紹了,這裡只記錄叢集搭建配置的內容。
Nginx安裝請參考另外的部落格:Nginx學習–(1)Linux下安裝Nginx
本文講解只使用兩個tomcat,多個tomcat的配置於此基本一樣,只要保持相關埠不重複就好

本叢集環境基礎設施為:
阿里雲ECS伺服器(CentOS系統)【已開放8080與9080埠安全組配置】
已安裝完成的Nginx,通過埠訪問可以進入到Nginx歡迎頁面。
這裡寫圖片描述

2、正式搭建:安裝兩個tomcat伺服器

(1)將準備好的tomcat安裝包進行解壓,解壓到指定目錄下,筆者的目錄為:/usr/local/ 分別重新命名為tomcat1 與 tomcat2
這裡寫圖片描述


(2)在系統中新增環境變數。開啟/etc/profile檔案,在最下面新增:(具體路徑根據自己的情況配置)

export CATALINA_BASE=/usr/local/tomcat1
export CATALINA_HOME=/usr/local/tomcat1
export TOMCAT_HOME=/usr/local/tomcat1
export CATALINA_2_BASE=/usr/local/tomcat2
export CATALINA_2_HOME=/usr/local/tomcat2
export TOMCAT_2_HOME=/usr/local/tomcat2

3、配置tomcat

【1】tomcat1保持不變,將tomcat2的配置檔案進行配置:開啟tomcat2目錄下的/conf/server.xml ,修改三個關於埠的配置:
(1)修改server節點埠,改成9005
這裡寫圖片描述


(2)修改HTTP/1.1 連結協議埠改成9080
這裡寫圖片描述
(3)修改AJP/1.3 連結協議埠 ,改成9009
這裡寫圖片描述
【2】修改tomcat2的catalina.sh檔案。路徑為:tomcat2路徑/bin/catalina.sh
找到# OS specific support. $var must be set to either true or false.在這句註釋下面新增:

export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME

【3】分別啟動兩個tomcat進行訪問,注意啟動時的tomcat資訊:(分別引用到上邊配置過的環境變數)
tomcat1訪問路徑:http://伺服器ip或域名:8080
tomcat1啟動資訊:
這裡寫圖片描述


tomcat2訪問路徑:http://伺服器ip或域名:9080
tomcat2啟動資訊:
這裡寫圖片描述

4、開始負載均衡配置:

(1)修改nginx目錄/conf/nginx.conf檔案,在HTTPS server註釋的上邊新增:

include vhost/*.conf;

這裡寫圖片描述
這裡做的是將配置檔案進行拆分,方便後期維護。
(2)在sbin目錄下新建vhost資料夾,並在裡面建立與網站域名對應的檔案,筆者的練習域名為www.superboys.xin,那麼建立的檔名則為:www.superboys.xin.conf ,(此處命名規則也是為了維護方便,具體原因不再贅述)建立後為此檔案新增內容:

upstream www.superboys.xin{
        server 127.0.0.1:8080;
        server 127.0.0.1:9080;
}

server{
        listen 80;
        autoindex on;
        server_name www.superboys.xin;
        access_log /usr/local/nginx/logs/access.log combined;
        index index.html index.htm index.jsp index.php;
        location / {
                proxy_pass http://www.superboys.xin;
                add_header Access-Control-Allow-Origin *;
        }
}

對此配置進行講解:
server節點:

  1. listen:監聽域名的80埠
  2. autoindex:是否自動為目錄建立索引
  3. servername:可以請求到nginx的域名
  4. access_log:日誌存放目錄
  5. index:主頁訪問檔名
  6. location:請求被轉發的url

upstream節點:負載均衡相關配置,預設使用輪訓方式
我們這裡對被轉發到url(www.superboys.xin)的請求分別負載到兩個server上,他們的路徑分別為本地伺服器的8080埠與8090埠,負載均衡方式為預設的輪詢方式。
需要注意的是:upstream後面的路徑配置要與location中的proxy_pass的域名配置保持一致。

(3)至此,整體nginx配置完畢,啟動nginx服務,進行除錯測試。reload nginx配置檔案
在conf目錄下執行命令:

./nginx -s reload

5、叢集環境驗證

  • 筆者採用的是更換兩個tomcat的首頁圖示進行區分,將其中一個tomcat的webapp目錄下,ROOT專案路徑下的tomcat.png換成任意其他圖片,名稱不變。
  • 對於上述驗證方法,在重新整理瀏覽器測試負載均衡效果的時候,注意使用【清除快取】重新整理方式,Ctrl+F5,有些瀏覽器(比如谷歌)只按F5會走快取重新整理,根本看不見負載均衡效果。

6、balabala~

筆者是個菜鳥,文章也就是為了記錄一下學習的過程,大神看見了文章發現有錯誤請評論給我,我改正。(#^.^#)