這裡寫目錄标題
- 環境準備
-
- 1、關閉防火牆、關閉核心防護
- 2、檢視JDK是否安裝
- 3、安裝Tomcat1(192.168.100.22)
- 4、安裝Tomcat2(192.168.100.23)
- 5、配置Nginx伺服器(192.168.100.21)
環境準備
三台虛拟機
Tomcat 2台
nginx 1台
1、關閉防火牆、關閉核心防護
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
2、檢視JDK是否安裝
[[email protected] ~]# java -version
如果未安裝需要下載下傳安裝包
yum -y install java-1.8.0-openjdk
tar xf jdk-8u144-linux-x64.tar.gz ##### 解壓安裝包
cp -rv jdk1.8.0_144/ /usr/local/java #####複制檔案到/usr/local/java
vi /etc/profile #####編輯環境變量
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$PATH:/usr/local/java/bin
export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib
source /etc/profile #####讓剛才編輯的環境變量生效
java -version #####檢查java版本
3、安裝Tomcat1(192.168.100.22)
●解壓 apache-tomcat-8.5.16.tar.gz 包
[[email protected] ~]# tar xf apache-tomcat-8.5.16.tar.gz
●解壓後生成 apache-tomcat-8.5.16 檔案夾,将該檔案夾移動到/usr/local/下
[[email protected] ~]# mv apache-tomcat-8.5.16/ /usr/local/tomcat8
●啟動 tomcat
[[email protected] ~]# cd /opt
[[email protected] opt]# tar xzvf apache-tomcat-8.5.23.tar.gz #####解壓
[[email protected] opt]# cp -r apache-tomcat-8.5.23 /usr/local/tomcat8 #####将源代碼複制到/usr/local/tomcat8
ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup #####建立軟連接配接tomcatup
ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown #####建立軟連接配接tomcatdown
[[email protected] opt]# tomcatup ######啟動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.
[[email protected] opt]# netstat -anpt | grep 8080 #####檢測是否啟動,8080端口是否工作正常
tcp6 0 0 :::8080 :::* LISTEN 68238/java
●建立 Java 的 Web 站點
在根目錄下建立一個 web 目錄,并在裡面建立一個 webapp1 目錄,用于存放網站檔案
[[email protected] ~]# mkdir -pv /web/webapp1
●在webapp1 目錄下建立一個 index.jsp 的測試頁面
[[email protected] ~]# 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("動态頁面 1,http://www.51xit.com");%>
</body>
<body>
<div>靜态頁面的圖檔 1</div><br><img src="logo.jpg">
</body>
</html>
●修改 Tomcat 的 server.xml 檔案。定義一個虛拟主機,并将網站檔案路徑指向已經建立的/web/webapp1,在 host 加 context 段
[[email protected] ~]# 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 應用的文檔基準目錄
###reloadable 設定監視"類"是否變化
###path="" 設定預設"類"
●關閉 Tomcat,再重新啟動
[[email protected] ~]# /usr/local/tomcat8/bin/shutdown.sh
[[email protected] ~]# /usr/local/tomcat8/bin/startup.sh
通過浏覽器通路 http://192.168.100.22:8080/
顯示“靜态頁面的圖檔 1”文字,并沒有出現 logo.jpg 圖檔,原因是由于靜态圖檔暫時沒 配,是以加載不出來
4、安裝Tomcat2(192.168.100.23)
與Tomcat安裝配置一樣,隻需要改一下vim /web/webapp1/index.jsp裡面的靜态和動态頁面圖檔便于區分就行
5、配置Nginx伺服器(192.168.100.21)
在 Nginx 伺服器 192.168.100.21上安裝 Nginx,反向代理到兩個 Tomcat 站點,并實作 負載均衡
1、關閉防火牆
2、安裝相關軟體包
[[email protected] ~]# yum -y install pcre-devel zlib-devel openssl-devel gcc-c++
■解壓并安裝 Nginx
[[email protected] ~]# groupadd www
[[email protected] ~]# useradd -g www www -s /bin/false
[[email protected] opt]# tar xzvf nginx-1.15.9.tar.gz
[[email protected] opt]# cd nginx-1.15.9/
[[email protected] nginx-1.15.9]# ./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
//–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 子產品
[[email protected] nginx-1.12.0]# make && make install
[[email protected] nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[[email protected] nginx-1.12.0]# ls -l /usr/local/sbin/nginx
lrwxrwxrwx 1 root root 30 10 月 16 16:50 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx
■檢查配置檔案
與 Apache 的主程式 httpd 類似, Nginx 的主程式也提供了“-t”選項用來對配置檔案進行
檢查, 以便找出不當或錯誤的配置。 配置檔案 nginx.conf 預設位于安裝目錄下的 conf/子目
錄中。 若要檢查位于其他位置的配置檔案, 可使用“-c”選項來指定路徑
[[email protected] ~]# 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
■啟動、 停止 Nginx
killall -1 nginx ####安全重新開機
killall -3 nginx ###停止服務
如果出現: -bash: killall: command not found
就yum -y install psmisc
[[email protected] ~]# nginx ####啟動
[[email protected] ~]# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
7180/nginx: master
[[email protected] ~]# yum -y install elinks
[[email protected] ~]# elinks http://localhost #####使用 elinks 浏覽器 ####顯示“Welcome to nginx!”頁面,表明 Nginx 服務已經正常運作
■添加 Nginx 系統服務
[[email protected] ~]# vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[Unit]
Description=nginx ####描述
After=network.target ####描述服務類别
[Service]
Type=forking ####背景運作形式
PIDFile=/usr/local/nginx/logs/nginx.pid ####PID 檔案位置
ExecStart=/usr/local/nginx/sbin/nginx ####啟動服務
ExecReload=/usr/bin/kill -s HUP $MAINPID ####根據 PID 重載配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID ####根據 PID 終止程序
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[[email protected] ~]# chmod 754 /lib/systemd/system/nginx.service
[[email protected] ~]# systemctl enable nginx.service
■重新開機系統
systemctl start nginx.service
systemctl stop nginx.service
systemctl reload nginx.service
systemctl restart nginx.service
systemctl status nginx.service
■配置 nginx.conf
在 http {…} 中加入以下代碼,設定負載均衡的伺服器清單,weight 參數表示權重, 權重越高,
被配置設定到的機率越大。為了使測試效果比較明顯,我們把權重設定為一樣
[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf
upstream tomcat_921:8080 weight=1;
server 172.16.16.173:8080 weight=1;
}
■編輯 Nginx 靜态頁面檔案
vim /usr/local/nginx/html/index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>靜态頁面</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>靜态頁面</h1>
<p>這是個靜态頁面</p>
</body>
</html>
■添加動靜分離規則
在 http {…} - server{…}中加入 location ~ .*.jsp${…}動态請求條件規則以及靜态圖檔請求規則
location ~ .*.jsp$ { ###動态頁面正則
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Client-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat_server;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { ###靜态圖檔正則
root /usr/local/nginx/html/img;
expires 30d;
}
location / {
root html;
index index.html index.htm;
}
■啟動服務
nginx -t #測試 Nginx 配置檔案是否正确
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #啟動 Nginx 服務
ps aux | grep nginx #檢視 Nginx 服務程序
■測試效果 下面是測試步驟
(1)測試靜态頁面效果 打開浏覽器通路 http://192.168.100.21/,可以看到通路到 nginx 靜态頁面,
(2)測試負載均衡效果 打開浏覽器通路 http://192.168.100.21/index.jsp。 不斷重新整理浏覽器測試,
可以看到由于權重相同,頁面會反複在以下兩個頁面來回切換。 第一次通路,出現 test1 的測試頁面,
并且能正常加載 nginx 上的靜态頁面圖檔,重新整理後,第二次通路,出現 test2 的測試頁面,
示。,就說明負載均衡群集搭建成功,已經可以 在兩個 Tomcat server 站點進行切換了