您好,登錄后才能下訂單哦!
下文給大家帶來應該如何部署Tomcat 及負載均衡配置,希望能夠給大家在實際運用中帶來一定的幫助,負載均衡涉及的東西比較多,理論也不多,網上有很多書籍,今天我們就用億速云在行業內累計的經驗來做一個解答。
Tomcat云服務器作為免費的開源web應用服務器,屬于輕量級應用服務器,在中小型系統和并發用戶不是很多的場合中被普遍使用,是開發和測試JSP程序的首選。一般來說,Tomcat雖然和apache或者Nginx這些web服務器一樣,具有處理HTML頁面的功能,然而由于其處理靜態頁面的能力遠不如apache或者Nginx,所以Tomcat一般是作為一個servlet和JSP容器,單獨運行在后端,Tomcat應用場景如下:
用戶訪問的永遠是apache/Nginx服務器,然后由apache/Nginx服務器轉交給Tomcat服務器處理,所有服務器都連接著共享存儲服務器,以便使用戶每次訪問到數據是一樣的,apache/Nginx是用來做調度的,也就是熟知的負載均衡,關于負載均衡不多解釋了。
通常情況下,一臺Tomcat站點由于可能出現單點故障及無法應付過多的客戶復雜多樣的請求等問題,不能單獨應用于生產環境下,所以需要使用負載均衡來解決這些問題。
Nginx是一個非常優秀的http服務器軟件,它能夠支持高達50000個并發連接數的響應,擁有強大的靜態資源處理能力,運行穩定,并且內存、CPU等系統資源消耗非常低。目前很多大型網站都應用Nginx服務器作為后端網站程序的反向代理及負載均衡器,來提升整個站點的負載并發能力。
部署環境如下:
一、準備工作:
三臺 Centos 7 及系統鏡像
Tomcat 和 Nginx 的源碼包(可自行從官網下載)
本人提供的軟件包 https://pan.baidu.com/s/1mqrs2jW-6ADRA2uUf6ERBg
提取碼: mu4j
開始在 1.10 服務器上做 Tomcat (本人較懶,防火墻的配置就免了,我直接給停服務了,如有需要,請自行配置放行)
[root@localhost /]# java -version # 查看 Java 是否安裝,如果沒有,請自行安裝
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
二、安裝配置 Tomcat:
[root@localhost /]# tar zxf apache-tomcat-8.5.16.tar.gz -C /usr/src/
[root@localhost /]# cd /usr/src/
[root@localhost src]# mv apache-tomcat-8.5.16/ /usr/local/tomcat8 # 將生成的文件移動到 /usr/src 下
[root@localhost /]# mkdir -p /web/webapp1 # 創建用于存放 Java web站點的根目錄
[root@localhost /]# 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 test1");%>
</body>
</html>
[root@localhost /]# vim /usr/local/tomcat8/conf/server.xml
............................... # 在 Host 段增加 context 段
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context> // docBase:web 應用的文檔基準目錄
// reloadable: 設置監視“類”是否變化
// path=“”:設置默認“類”
啟動 Tomcat:
.............. 關閉 Tomcat 將startup.sh 改為 shutdown.sh 即可
[root@localhost /]# /usr/local/tomcat8/bin/startup.sh # 啟動 Tomcat
Using CATALINA_BASE: /usr/local/tomcat8
Using CATALINA_HOME: /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.
[root@localhost /]# netstat -anpt | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 4280/java
tcp6 0 0 192.168.1.10:8080 192.168.1.10:41946 TIME_WAIT -
測試訪問 192.168.1.10:8080 如下:
.
至此,192.168.1.10的Tomcat就已經配置完成了,另一臺Tomcat服務器192.168.1.20的配置和192.168.1.10的配置完全一樣,將上面的配置在192.168.1.20服務器上配置一遍即可,不過為了測試的時候可以看出負載均衡的效果,讓我們可以看出每次訪問的服務器都不是同一臺,需要將192.168.1.20的Tomcat服務器的測試頁面和192.168.1.10的頁面不一樣。
.
不過在實際生產環境中,兩臺Tomcat訪問的一定是使用同一個共享存儲服務器,不管是哪臺服務器向用戶提供服務,用戶接受到的頁面一定是一樣的。
三、部署 Nginx:
安裝所需依賴包:
[root@localhost /]# yum -y install pcre-devel zlib-devel openssl-devel
[root@localhost /]# tar zxf nginx-1.12.0.tar.gz -C /usr/src/
[root@localhost /]# groupadd www # 創建運行組
[root@localhost /]# useradd -g www www -s /bin/false # 創建運行用戶并添加到組, /bin/false 相當于 /sbin/nologin
[root@localhost nginx-1.12.0]# cd /usr/src/nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure --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 && make && make install
// --user=,--group= 指定運行用戶和組
//--with-file-aio 啟用文件修改支持
//--with-http_stub_status_module 啟用狀態統計
//--with-http_gzip_static_module 啟用 gzip 靜態壓縮
//--with-http_flv_module 啟用 flv 模塊,提供尋求內存使用基于時間的偏移量文件
//--with-http_ssl_module 啟用 ssl 模塊
[root@localhost /]# vim /usr/local/nginx/conf/nginx.conf
.................................
#gzip on; 定位到此行,依次向下添加
upstream tomcat_server {
server 192.168.1.10:8080 weight=1;
server 192.168.1.20:8080 weight=1;
}
#寫到這里就可以了
#weight參數表示權重,權重越高,表示被分配到的概率越大。
#為了測試效果明顯,這里將權重設置為一樣
server {
listen 80;
server_name localhost;
.............................................................
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat_server; # 添加此行 ,http 后的名稱需要與之前所設置的 upstream 的名稱相同
}
優化Nginx:
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#創建主程序的鏈接文件
[root@localhost ~]# vim /etc/init.d/nginx #編輯服務腳本
#!/bin/bash
# chkconfig: - 99 20
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "USAGE:$0 {start | stop | restart | reload}"
exit 1
esac
exit 0
[root@localhost ~]# chmod +x /etc/init.d/nginx #添加執行權限
[root@localhost ~]# chkconfig --add nginx #添加為系統服務
[root@localhost nginx-1.12.0]# 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
[root@localhost ~]# systemctl start nginx #啟動Nginx服務,以確認腳本的正常運行
[root@localhost ~]# netstat -anpt | grep nginx #查看80端口是否處于監聽狀態
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 90475/nginx: master
四、訪問測試:
訪問 192.168.1.30 得到如下:
刷新之后會發生變化
看了以上關于應該如何部署Tomcat 及負載均衡配置,如果大家還有什么地方需要了解的可以在億速云行業資訊里查找自己感興趣的或者找我們的專業技術工程師解答的,億速云技術工程師在行業內擁有十幾年的經驗了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。