1. 程式人生 > >Nginx+Tomcat負載均衡群集

Nginx+Tomcat負載均衡群集

x64 ati web目錄 text 操作系統 安裝路徑 hat 檢查 serve

通常情況下,單個Tomcat站點由於可能出現單點故障而無法應付客戶復雜多樣的請求,所以需要結合Nginx強大的處理並發連接能力,將Nginx作為負載均衡器,用於調用Tomcat服務器,從而實現負載均衡群集。

Nginx+Tomcat網站拓撲架構

技術分享圖片

實驗環境

主機 操作系統 IP地址 主要軟件
Nginx服務器 Redhat6.5 192.168.100.107 Nginx-1.12
Tomcat服務器1 Redhat6.5 192.168.100.109:8080 ①jdk-8u91 ②apache-tomcat-8.5.16
Tomcat服務器2 Redhat6.5 192.168.100.109:8080 ①jdk-8u91 ②apache-tomcat-8.5.16

Nginx服務器配置

手動編譯Nginx時需要檢查依賴包是否存在,然後安裝所需依賴包:

yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel -y

解壓安裝Nginx:

useradd -s /sbin/false www //添加Nginx系統賬戶
tar zxvf nginx-1.12.0.tar.gz -C /opt //解壓Nginx

cd /opt/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 \  //啟用gzip靜態壓縮
--with-http_flv_module \          //啟用flv模塊,提供尋求內存使用基於時間的偏移量文件
--with-http_ssl_module   //啟用SSL模塊

編輯Nginx主配置文件,讓Nginx可以調度提供服務的Tomcat服務器:

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

keepalive_timeout  65;
    #gzip  on;
    upstream tomcat_server {                //添加服務器地址池,配置權重為1;
              server 192.168.100.109:8080 weight=1;
              server 192.168.100.111:8080 weight=1;
            }
(......省略代碼)            
location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://tomcat_server;   //添加行,調用前面地址池名稱

/usr/local/nginx/sbin/nginx -t //檢查配置文件
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx //啟動Nginx服務
netstat -ntap | grep nginx //查看服務是否開啟
service iptables stop
setenforce 0

Tomcat服務器配置

1、配置Java環境

tar zxvf jdk-8u91-linux-x64.gz -C /opt 解壓jdk軟件包
mv jdk1.7.0_65/ /usr/local/java 設置工作目錄
cd /etc/profile.d/ 配置環境變量
vim java.sh 配置環境變量腳本

export JAVA_HOME=/usr/local/java     //設置Java根目錄//
export PATH=$PATH:$JAVA_HOME/bin     //在PATH環境變量中添加

2、安裝配置Tomcat1

tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt/
mv apache-tomcat-8.5.16/ /usr/local/tomcat8
/usr/local/tomcat8/bin/startup.sh 啟動tomcat
netstat -ntap | grep 8080 監聽8080端

創建測試頁:

mkdir -pv /web/webapp1 //創建web目錄//
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>

vim /usr/local/tomcat7/conf/server.xml
編輯Tomcat主配置文件,添加首頁內容站點

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

<Context docBase="/web/webapp1" path="" reloadable="false">     //添加如下部分,以及站點目錄
</Context>

配置完成後訪問其服務:
技術分享圖片

3、安裝配置Tomcat2

Tomcat配置與Tomcat1服務器完全一致,此處為了區分當Nginx服務器調度時是兩個不同的Tomcat服務器,需要在Tomcat測試頁中修改內容為test2;
技術分享圖片

4、測試負載均衡效果

當訪問Nginx服務器時,Nginx服務會調用後面提供服務的Tomcat服務器,為了實現負載均衡,每次調用的服務器並不是同一個服務器:
技術分享圖片
技術分享圖片

Nginx+Tomcat負載均衡群集