溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux環(huán)境搭建Nginx和Tomcat負載均衡集群

發(fā)布時間:2021-09-14 10:14:42 來源:億速云 閱讀:125 作者:chen 欄目:云計算

本篇內(nèi)容介紹了“Linux環(huán)境搭建Nginx和Tomcat負載均衡集群”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

Tomcat服務(wù)器是一個免費的開放源代碼的web應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,是開發(fā)和調(diào)試JSP程序的首選。由于Tomcat處理靜態(tài)HTML的能力運不及Apache或者Nginx,所以Tomcat通常是作為一個Servlet和JSP容器,單獨運行在后端。

  • Nginx服務(wù)器能支持高達50000個并發(fā)連接數(shù)的響應(yīng),擁有強大的靜態(tài)資源處理能力,運行穩(wěn)定,并且內(nèi)存、CPU等系統(tǒng)資源消耗非常低.

通常情況下,一個Tomcat站點由于可能出現(xiàn)單點故障及無法應(yīng)付過多客戶復(fù)雜請求等問題,不能單獨應(yīng)用于生產(chǎn)環(huán)境下,目前很多大型網(wǎng)站都應(yīng)用Nginx服務(wù)器作為后端網(wǎng)站程序的反向代理及負載均衡器,簡單來說就是Nginx作為負載均衡器,響應(yīng)客戶端的請求,Tomcat作為應(yīng)用服務(wù)器的負載集群,處理客戶端的請求,也就是說Nginx將訪問請求轉(zhuǎn)發(fā)給后端服務(wù)器池的服務(wù)器來處理。網(wǎng)站拓撲圖如圖所示:

Linux環(huán)境搭建Nginx和Tomcat負載均衡集群

案例環(huán)境:

主機操作系統(tǒng)IP地址主要軟件Nginx服務(wù)器RedHat7.3 x86_64192.168.113.151nginx-1.12.0.tar.gzTomcat服務(wù)器1CentOS7.4 x86_64192.168.113.129jdk-8u91-linux-x64.tar.gz / apache-tomcat-8.5.16.tar.gzTomcat服務(wù)器2CentOS7.4 x86_64192.168.113.150jdk-8u91-linux-x64.tar.gz / apache-tomcat-8.5.16.tar.gz

  • Tomcat1 server配置

1.啟動主機后關(guān)閉防火墻

 
systemctl disable firewalld.service //禁用防火墻服務(wù) systemctl stop firewalld.service //關(guān)閉防火墻服務(wù)

2.安裝JDK,配置Java環(huán)境

(1).解壓jdk軟件至/opt目錄下,并將解壓后生成的jdk文件夾移到/usr/local/下,改名為java。

 
tar zxvf jdk-7u65-linux-x64.gz -C /opt mv jdk1.7.0_65/ /usr/local/java

(2).在/etc/profile.d/下建立java.sh腳本。

 
[root@centos7-1 ~]# vim /etc/profile.d/java.sh  export JAVA_HOME=/usr/local/java //設(shè)置Java根目錄 export PATH=$PATH:$JAVA_HOME/bin //在PATH環(huán)境變量中添加Java根目錄下的bin/子目錄

(3).將java.sh腳本導(dǎo)入到環(huán)境變量,使其生效

 
source /etc/profile.d/java.sh

(4).運行java-version命令查看java版本是否和之前安裝的一致。

 
[root@centos7-1 ~]# java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

3.安裝配置Tomcat

(1).解壓apache-tomcat-8.5.16.tar.gz包至/opt目錄,并將解壓后生成的文件夾移動到/usr/local/下,改名為tomcat8。

 
tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt/ mv apache-tomcat-8.5.16/ /usr/local/tomcat8

(2).啟動Tomcat

 
[root@centos7-1 ~]# /usr/local/tomcat8/bin/startup.sh  Using CATALINA_BASE: /usr/local/tomcat8 Using CATALINA_HOME: /usr/local/tomcat8 Using CATALINA_TMPDIR: /usr/local/tomcat8/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar Tomcat started.

Tomcat默認運行在8080端口,運行netstat命令查看8080端口監(jiān)聽的信息。

 
[root@centos7-1 ~]# netstat -ntap | grep 8080 tcp6 0 0 :::8080 :::* LISTEN 1583/java

(3).打開瀏覽器訪問測試http://192.168.113.129:8080/, 如果出現(xiàn)x下面的界面,則表示Tomcat已經(jīng)配置啟動成功。

Linux環(huán)境搭建Nginx和Tomcat負載均衡集群

4.建立Java的web站點

(1).在根目錄下建立一個web目錄,并在里面建立一個webapp1目錄,用于存放網(wǎng)站文件。

 
[root@centos7-1 ~]# mkdir -pv /web/webapp1 mkdir: 已創(chuàng)建目錄 "/web" mkdir: 已創(chuàng)建目錄 "/web/webapp1"

(2).在webapp1目錄下建立一個index.jsp的測試頁面。

 
[root@centos7-1 ~]# vim /web/webapp1/index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> //注釋 <html> <head> <title>JSP test1 page</title> //測試頁標(biāo)題 </head> <body> <% out.println("Welcome to test site,http://www.test1.com");%> //測試頁主體內(nèi)容 </body> </html>

(3).修改Tomcat的server.xml文件。

定義一個虛擬主機,并將網(wǎng)站文件路徑指向已經(jīng)建立的/web/webapp1,在host段增加context段。

 
[root@centos7-1 ~]# vim /usr/local/tomcat8/conf/server.xml <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context docBase="/web/webapp1" path="" reloadable="false"> </Context>
  • docBase:web應(yīng)用的文檔基準(zhǔn)目錄

  • reloadable: 設(shè)置監(jiān)視“類”是否變化

  • path="": 設(shè)置默認“類

(4).關(guān)閉Tomcat,再重新啟動。

 
/usr/local/tomcat8/bin/shutdown.sh //關(guān)閉Tomcat /usr/local/tomcat7/bin/startup.sh //重啟Tomcat

(5).通過瀏覽器訪問http://192.168.113.129:8080/, 出現(xiàn)下面的界面,說明Tomcat站點配置成功并且能夠運行JSP了。

Linux環(huán)境搭建Nginx和Tomcat負載均衡集群

  • Tomcat2 server配置

  • Tomcat2 server配置方法基本同Tomcat1,其中包括:

1.啟動主機后關(guān)閉防火墻。

2.安裝JDK,配置Java環(huán)境,版本與Tomcat1 server一致。

3.安裝配置Tomcat,版本與Tomcat1 server一致。

4.創(chuàng)建/web/webapp1目錄,修改Tomcat配置文件server.xml文件,將網(wǎng)站文件目錄更改到/web/webapp1/路徑下。

5.在/web/webapp1/路徑下建立index.jsp,為了區(qū)別將測試頁index.jsp的內(nèi)容更改如下:

 
[root@localhost ~]# vim /web/webapp1/index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> //注釋 <html> <head> <title>JSP test2 page</title> //測試頁標(biāo)題 </head> <body> <% out.println("Welcome to test site,http://www.test2.com");%> //測試頁主體內(nèi)容 </body> </html>

6.啟動tomcat,瀏覽器訪問http://192.168.113.150:8080/, 出現(xiàn)下面的界面,說明Tomcat站點配置成功并且能夠運行JSP了。

Linux環(huán)境搭建Nginx和Tomcat負載均衡集群

  • Nginx服務(wù)器配置

  • 在Nginx服務(wù)器192.168.113.151上安裝Nginx,反向代理兩個Tomcat站點,并實現(xiàn)負載均衡。

  • 1.關(guān)閉防火墻

 
systemctl disable firewalld.service systemctl stop firewalld.service
  • 2.安裝支持軟件

 
yum install gcc gcc-c++ make pcre pcre-devel zlib-devel openssl-devel -y
  • 3.解壓并安裝Nginx

 
useradd -s /bin/false www //創(chuàng)建運行用戶www,強制禁止登陸系統(tǒng)shell環(huán)境 tar zxvf nginx-1.12.0.tar.gz -C /opt //解壓nginx軟件至/opt目錄下 cd /opt/nginx-1.12.0/ //切換到解壓后的nginx文件夾目錄下 ./configure \ //配置nginx的具體選項 --prefix=/usr/local/nginx \ --user=www \ --group=www \ --with-file-aio \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-http_flv_module \ --with-http_ssl_module
  • --prefix=/usr/l,ocal/nginx:指定nginx安裝路徑

  • --user=www,--group=www:指定運行的用戶和組

  • --with-file-aio:啟用文件修改支持

  • --with-http_stub_status_module:啟用狀態(tài)統(tǒng)計

  • --with-http_gzip_static_module:啟用gzip靜態(tài)壓縮

  • --with-http_flv_module:啟用flv模塊,提供尋求內(nèi)存使用基于時間的偏移量文件

  • --with-http_ssl_module:啟用ssl模塊

  • 加q群:834962734,可獲取一份Java架構(gòu)進階技術(shù)學(xué)習(xí)資源。(高并發(fā)+Spring源碼+JVM原理解析+分布式架構(gòu)+微服務(wù)架構(gòu)+多線程并發(fā)原理等...這些成為架構(gòu)師必備的內(nèi)容)以及Java進階學(xué)習(xí)路線圖。

4.配置nginx.conf

 
vim /usr/local/nginx/conf/nginx.conf

(1).在http{...}中加入以下代碼,設(shè)定負載均衡的服務(wù)器列表,weight參數(shù)表示權(quán)值,權(quán)值越高被分配到的概率越大。為了使測試效果明顯,把權(quán)重設(shè)置為一樣。

 
upstream tomcat_server { server 192.168.113.129:8080 weight=1; server 192.168.113.150:8080 weight=1;  } //配置后端服務(wù)池tomcat_server,以提供響應(yīng)數(shù)據(jù)

(2).在http{...} - server{...} - location /{...}中加入一行“proxy_pass http://tomcat_server;” 。

 
location / { root html; index index.html index.htm; proxy_pass http://tomcat_server; //配置將訪問請求轉(zhuǎn)發(fā)給后端服務(wù)器池的服務(wù)器處理 }

利用以上方式,把Nginx的默認站點通過proxy_pass方法代理到了設(shè)定好的tomcat_server負載均衡服務(wù)器組上。

5.測試nginx配置文件是否正確。

 
[root@RedHat7-1 ~]# /usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

6.啟動Nginx服務(wù)并查看其端口

 
[root@RedHat7-1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //創(chuàng)建nginx主程序的軟鏈接,方便調(diào)用nginx命令 [root@RedHat7-1 ~]# nginx //啟動nginx服務(wù) [root@RedHat7-1 ~]# netstat -ntap | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17819/nginx: master [root@RedHat7-1 ~]# killall -1 nginx //重啟nginx服務(wù)
  • 測試負載均衡效果

1.打開瀏覽器訪問http://192.168.113.151/.

2.不斷刷新瀏覽器測試,可以看到由于權(quán)重相同,頁面會反復(fù)在以下兩個頁面切換。

第一次訪問,出現(xiàn)test1的測試頁面,刷新后,第二次訪問出現(xiàn)test2的測試頁面,這說明負載均衡集搭建成功,已經(jīng)可以在兩個tomcat server站點間進行切換了。

Linux環(huán)境搭建Nginx和Tomcat負載均衡集群

Linux環(huán)境搭建Nginx和Tomcat負載均衡集群

真實環(huán)境中,服務(wù)器集群站點的內(nèi)容相同,這里是為了測試負載均衡集的效果而建立2個不同的測試頁面。

“Linux環(huán)境搭建Nginx和Tomcat負載均衡集群”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI