Nginx + Tomcat

文章目錄

1、Nginx 負載均衡實現原理

(1)Nginx 靜態處理優點

(2)Tomcat 主要目錄

(3)Nginx 應用

(4)動靜分離原理

2、實驗案例

第一步:搭建 Nginx

第二步:部署兩臺 Tomcat

第三步:Tomcat 中建立測試頁面

第四步:修改 Nginx 配置文件,添加服務器池

第五步:客戶端測試

1、Nginx 負載均衡實現原理:

Nginx 實現負載均衡是經過反向代理來實現的。

(1)Nginx 靜態處理優點

Nginx 處理靜態頁面的效率遠高於 Tomcat 的處理能力;

若是 Tomcat 的請求量爲 1000次,則 Nginx 的請求量爲 6000次;

Tomcat 每秒的吞吐量爲 0.6 M,Nginx 的每秒吞吐量爲 3.6M;

Nginx 處理靜態資源的能力是 Tomcat 處理的6倍,優點很大。

(2)Tomcat 主要目錄

bin:存放啓動和關閉Tomcat腳本

conf:存放Tomcat不一樣的配置文件

doc:存放Tomcat文檔

lib/japser/common:存放Tomcat運行須要的庫文件

logs:存放Tomcat執行時的LOG文件

src:存放Tomcat的源代碼

webapps:Tomcat的主要Web發佈目錄

work:存放jsp編譯後產生的class文件

(3)Nginx 應用

一、nginx是一款很是優秀的 HTTP 服務器軟件:

支持高達 50000個併發鏈接數的響應;

擁有強大的靜態資源處理能力;

運行穩定;

內存、CPU 等系統資源消耗很是低。

二、目前已有不少大型網站都應用 Nginx 服務器做爲後端網站程序的反向代理及負載均衡器,提高整個站點的負載併發能力。

(4)動靜分離原理

一、服務端接受來自客戶端的請求中,既有靜態資源也有動態資源。

二、設置 nginx 處理靜態圖片,後端 Tomcat 處理動態頁面

修改 Tomcat 端 jsp 文件,指定圖片文件;

修改 nginx 配置文件,添加正則處理圖片;

建立目錄並添加圖片(注意項目名稱須要和 Java 項目名稱相同)

重啓 nginx;

瀏覽器訪問測試查看圖片是否添加;

分別在 nginx 服務器和 Tomcat 服務器查看日誌文件

2、實驗案例:

實驗拓撲圖

(1)網絡圖總覽:

Nginx + Tomcat

(2)具體案例實驗:

Nginx + Tomcat

角色 IP地址

Nginx 192.168.220.131

Tomcat01 192.168.220.136

Tomcat02 192.168.220.137

實驗環境說明:

準備三臺虛擬機,一臺做爲 nginx 代理服務器,用於接收用戶的訪問請求,兩臺 Tomcat 服務器(羣集);

nginx 將客戶端的請求,轉發給後臺的多臺 Tomcat 服務器處理,Tomcat 將請求迴應,在經過代理服務器發給客戶端;

實驗驗證:客戶端只須要在瀏覽器上訪問代理服務器的地址,不須要訪問後臺的具體 Tomcat,就能訪問到網頁信息。

第一步:搭建 Nginx

搭建nginx,以前博客有詳細介紹。

第二步:部署兩臺 Tomcat

(1)配置 JAVA 環境

一、安裝 jdk

rpm -ivh jdk-8u201-linux-x64.rpm

安裝後的位置在:/usr/java/

二、配置環境變量

vim /etc/profile,在文件末尾添加如下代碼:

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

使環境變量生效:

source /etc/profile

三、使用 java -version 命令檢查是否已安裝成功

Nginx + Tomcat

(2)安裝和啓動 Tomcat

一、解壓縮包到指定路徑,/usr/local/

tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/

二、解壓完成後,生成 apache-tomcat-9.0.16 文件夾,更名爲 Tomcat

mv apache-tomcat-9.0.16/ tomcat

三、爲了方便控制 tomcat的開啓和關閉,咱們能夠建立一個軟鏈接

ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/

四、用 startup.sh 腳本開啓tomcat

Nginx + Tomcat

第三步:Tomcat 中建立測試頁面

(1)建立目錄

mkdir -p /web/webapp1

vim  /web/webapp1/index.jsp
添加如下內容:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>

<head>
  <title>JSP test1 page</title>
</head>

<body>
  <% out.println("Welcome to test site, http://www.test1.com");%>
</body>
</html>

Nginx + Tomcat)html

(2)指定站點

目錄:/usr/local/tomcat/conf

vim server.xml
添加如下代碼:

 <Context docBase="/web/webapp1" path="" reloadable="false">
 </Context>

Nginx + Tomcat

(3)回到 bin/ 目錄下,再從新啓動一下 Tomcat

./shutdown.sh 
./startup.sh

(4)瀏覽器訪問一下網頁,檢查是否成功

Nginx + Tomcat

(5)第二臺 Tomcat 部署和第一臺如出一轍,可是爲了頁面顯示區別,在 /web/webapp1/index.jsp 文件中,稍做修改,將 test1 改成 test2

Nginx + Tomcat

注意:

在企業網中,羣集中的 Tomcat 網站內容是如出一轍的,客戶不管訪問到哪一個Tomcat,提供的網站都是一致的。可是這邊,爲了展現實驗效果,站點內容不同,是爲了區分在客戶端可以看出是哪一個Tomcat 提供了服務迴應。

第四步:修改 Nginx 配置文件,添加服務器池

(1)文件位置:/usr/local/nginx/conf/nginx.conf

一、添加服務池:

upstream tomcat-server {
                       server 192.168.220.136:8080 weight=1;
                       server 192.168.220.137:8080 weight=1;
                    }

Nginx + Tomcat

二、在 location 段,添加如下代碼,意爲調用服務池(協議,端口等等)

proxy_pass http://tomcat-server;

Nginx + Tomcat

(2)重啓 nginx 服務

killall -1 nginx

第五步:客戶端測試

這個架構中,nginx 只做爲代理服務器而存在,咱們做爲用戶訪問網頁,根本就不知道後面是哪一臺具體提供服務的服務器,只須要將請求發送給 nginx 代理服務器,由 nginx 代理服務器,調用後臺的Tomcat 給用戶提供迴應。

在客戶機瀏覽器上訪問 nginx 代理服務器:

Nginx + Tomcat

Nginx + Tomcat

咱們能夠看到,從代理服務器,能夠直接訪問到羣集Tomcat提供的服務。

相關文章
相關標籤/搜索