一.實驗分析
- 通常,一個tomcat站點由於可能出現單點故障以及無法應付過多的客戶複雜多樣的請求等問題,不能單獨應用於生產環境下,所以我們需要一套更可靠的解決方案來完善web站點架構
- Nginx是一款性能優越的http服務器軟件,它能夠支持高達50000個併發連接數的響應,擁有強大的靜態資源處理能力,運行穩定,並且內存、CPU等系統資源消耗非常低。目前很多大型網站都應用Nginx服務器作爲後端網站程序的反向代理以及負載均衡器,來提升整個站點的負載併發能力
二.網絡拓撲圖以及實驗環境
類型 | IP地址 | 系統 | 軟件包 |
Nginx服務器 | 192.168.43.104 |
centos7 |
nginx-1.12.2.tar.gz |
Tomcat服務器1 | 192.168.43.102 |
apache-tomcat-8.5.50.tar.gz jdk-8u231-linux-x64.tar.gz |
|
Tomcat服務器2 | 192.168.43.103 | ||
客戶機 | 192.168.43.101 |
三.具體操作步驟以及驗證
- Tomcat服務器的配置
一.第一臺Tomcat服務器配置
1.解壓jdk的壓縮包
tar xzvf jdk-8u231-linux-x64.tar.gz -C /usr/local
2.配置JAVA環境變量
vim /etc/profile //追加到末尾
export JAVA_HOME=/usr/local/jdk1.8.0_231
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
3.加載JAVA環境變量
source /etc/profile
4.解壓tomcat軟件包
tar xzvf apache-tomcat-8.5.50.tar.gz -C /usr/local
5.修改目錄名,便於操作
cd /usr/local
mv apache-tomcat-8.5.50/ tomcat/
6.創建軟鏈接,優化服務控制方式
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
7.創建web站點,編輯站點內容
mkdir -pv /web/webapp1
vim index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("Welcome Tomcat 01");%>
</body>
</html>
~
8.修改Tomcat的server.xml文件,定義一個虛擬主機,並且將網站文件路徑指向已經建立的/web/webapp1,在hos段增加context段
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
9.關閉安全性功能,開啓服務
startup.sh
systemctl stop firewalld
setenforce 0
二.第二臺Tomcat服務器的配置
1.解壓jdk的壓縮包
tar xzvf jdk-8u231-linux-x64.tar.gz -C /usr/local
2.配置JAVA環境變量
vim /etc/profile //追加到末尾
export JAVA_HOME=/usr/local/jdk1.8.0_231
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
3.加載JAVA環境變量
source /etc/profile
4.解壓tomcat軟件包
tar xzvf apache-tomcat-8.5.50.tar.gz -C /usr/local
5.修改目錄名,便於操作
cd /usr/local
mv apache-tomcat-8.5.50/ tomcat/
6.創建軟鏈接,優化服務控制方式
ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
7.創建web站點,編輯站點內容
mkdir -pv /web/webapp1
vim index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("Welcome Tomcat 02");%>
</body>
</html>
~
8.修改Tomcat的server.xml文件,定義一個虛擬主機,並且將網站文件路徑指向已經建立的/web/webapp1,在hos段增加context段
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
9.關閉安全性功能,開啓服務
startup.sh
systemctl stop firewalld
setenforce 0
- Nginx服務器的配置
1.解壓軟件包
tar xzvf nginx-1.12.2.tar.gz -C /opt
2.下載相關軟件包
yum install pcre-devel zlib-devel gcc gcc-c++ make -y
3.創建nginx的用戶
useradd -M -s /sbin/nologin nginx
4.編譯安裝nginx
cd /opt/nginx-1.12.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx --group=nginx \
--with-http_stub_status_module \ //啓用狀態統計
--with-http_gzip_static_module \ //啓用gzip靜態壓縮
--with-http_flv_module //啓用flv模塊,提供尋求內存使用基於時間的偏移量文件
make && make install
4.編輯nginx的主配置文件
vim /usr/local/nginx/conf/nginx.conf
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream tomcatserver { //upstream函數,配置tomcat服務器池
server 192.168.43.102:8080 weight=1; //weight代表權重
server 192.168.43.103:8080 weight=1;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcatserver; //反向代理到設置的tomcat服務器池
}
5.優化服務控制方式
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
6.檢查語法,是否配置正確
[root@localhost ~]# 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 ~]#
7.關閉安全性功能,開啓nginx服務
systemctl stop firewalld
setenforce 0
nginx
- 驗證羣集功能
注:通常,現網中的nginx與tomcat的羣集,會有Nginx與keepalived的雙機熱備,還有tomcat與nginx動靜分離