1. 程式人生 > >Nginx和Tomcat叢集部署

Nginx和Tomcat叢集部署

目錄

1.安裝規劃

2.系統概述

2.1 硬體

2.2軟體

2.3安裝順序

3.軟體獲取

3.1Tomcat下載

3.2Nginx下載

4.Tomcat安裝

4.1JAVA環境配置

4.2 Tomcat安裝

4.2.1 Tomcat埠修改

4.2.2 啟動tomcat

5.Nginx安裝

5.1 nginx安裝

5.2 nginx配置檔案修改

5.3 nginx啟動

5.4 nginx關閉

6.Nginx靜態檔案部署

7.Nginx反向代理

8 Nginx叢集部署和負載均衡

1安裝規劃

為軟體專案部署到多臺伺服器搭建叢集環境

需要準備一臺代理伺服器和數臺普通伺服器

靜態資源部署在代理伺服器上,動態資源部署在普通伺服器上。

作業系統為window2003 或以上(以window10展示)

2系統概述

2.1 硬體

硬體要求不低於以下配置:

CPU        Intel至強E5400系列CPU

RAM       1G 1333MHz

DISK       20G以上

2.2軟體

   Nginx1.12.2 

   Tomcat7.x

2.3安裝順序

1.在普通伺服器安裝Tomcat

2.在代理伺服器安裝nginx

3.軟體獲取

3.1Tomcat下載

然後再左側Download欄下選擇Tomcat 7


然後在下方選擇zip格式,點選瀏覽器則提示下載

3.2Nginx下載



4.Tomcat安裝

4.1JAVA環境配置(已經安裝jdk並配置好的可以跳過)

然後安裝好JDK後在“我的電腦”右鍵 “屬性” 點選左側高階系統設定然後點選底部環境變數,然後選擇系統變數下的新建,在變數名輸入JAVA_HOME,然後變數值輸入jdk的安裝路徑或者用瀏覽目錄選擇,最後點確定。JDK環境配置完成(用CMD輸入java然後回車檢查是否安裝成功),如果還有問題請檢視百度https://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html



4.2 Tomcat安裝

Java環境配置好之後,解壓下載好的tomcat壓縮包,tomcat可以在一臺伺服器(或者PC)上部署多個,只需要解壓即可。但是多個tomcat要一起執行,必須改變配置資訊。


4.2.1 Tomcat埠修改

開啟tomcat資料夾,找到conf資料夾下的server.xml,以記事本方式開啟。

按圖片步驟修改埠號(不要與其他程式軟體衝突)


4.2.2 啟動tomcat

修改好配置檔案後就可以啟動tomcat了。開啟tomcat資料夾下的bin目錄找到startup.bat(Linux是startup.sh),雙擊啟動。(同一臺伺服器執行多個tomcat需要配置CATALINA_HOME,配置方法和JAVA_HOME類似)



注意:不要關閉這個視窗,否則tomcat會一起關閉。

Tomcat的日誌檔案放在tomcat下的log資料夾下的catalina.時間.log每天生成一個日誌檔案,如果無法啟動或者執行出錯請檢視日誌。

4.2.3 專案部署

方法一,先將專案檔案打包成war包,然後把.war檔案放置到tomcat資料夾下的webapps資料夾中,再次啟動tomcat時會自動解壓執行(tomcat執行起來後可以刪除.war檔案了)。

方法二,將專案檔案自己放置到tomcat資料夾下的webapps資料夾中,再次啟動tomcat專案就會運行了。

此外,靜態檔案也可以放置在webapps下提供給外部訪問,但一般靜態檔案都有專門的伺服器去存放。

5 nginx安裝

5.1 nginx安裝

Nginx的安裝和tomcat相似,只需要解壓即可,同樣可以一臺伺服器上安裝多個nginx(同樣要修改埠防止衝突,方法在部署中會提到)

注意:nginx的安裝目錄不能有中文,否則會啟動失敗

5.2 nginx配置檔案修改

Nginx的配置檔案在nginx/conf/nginx.conf以記事本方式開啟即可修改

如圖修改埠


5.3 nginx啟動

雙擊nginx.exe即可啟動,啟動後無視窗(啟動時有視窗閃一下)。開啟工作管理員檢視


上圖兩個nginx.exe說明nginx已經啟動成功,訪問http://服務訪問名:埠號/  即可看到nginx歡迎介面


如果工作管理員沒有找到nginx的服務則在nginx/logs/error.log檢視錯誤  


5.4 nginx關閉

要關閉nginx需要在工作管理員關閉nginx.exe的程序樹就可以了。

6 nginx靜態檔案部署

網頁專案的圖片和靜態網頁等靜態資源可以放在nginx上訪問

只需要在nginx.conf中修改location屬性



7 nginx反向代理

使用nginx進行反向代理其實很簡單,只需要在nginx.conf裡面配置好數臺普通伺服器ip就可以了。

首先開啟nginx.conf,配置多個server,給予不同listen。

給每個server新增porxy_pass屬性。

例如

   server {

       listen       80;

       location / {

           proxy_pass http://localhost:8080/;

       }

    }

 server {

       listen       81;

       location / {

           proxy_pass  http://www.baidu.com/;

        }

}


注意:以上因為是一臺電腦演示的,所以都用localhost,

實際上應用http://代理伺服器域名或IP:埠號/ 去訪問


8 nginx叢集部署和負載均衡

一般一個大的系統都會採用分散式來部署在機房中的數個伺服器中,這時就需要一個代理來分發請求給各個伺服器,用nginx代理只需要修改一下配置檔案nginx.conf 就行了。

首先專案需要拷貝到各個普通伺服器的tomcat中執行,並得到它們的訪問地址

然後將訪問地址配置到代理伺服器的nginx中

例如將a.txt放置到三個tomcat中,然後用nginx代理轉發

  server{

   listen  80;

   server_namelocalhost;

   upstreambakend{ }{

   server127.0.0.1:8080 weight=2;

   server 127.0.0.1:8081 weight=4;

   server127.0.0.1:8082 weight=1;

   }

   location /  {

   proxy_passhttp://bakend;

   }

 }


但是並不是每個伺服器訪問到的概率都是一樣的,在地址後面加上weight屬性即可賦予權值,權值越高越容易被訪問到,使效能高的伺服器多幹活,效能低的伺服器少幹活。