1. 程式人生 > >Nginx+tomcat實現反向代理(內附源碼包)

Nginx+tomcat實現反向代理(內附源碼包)

穩定 工作原理 -c 架構 sysconf 資源 selinux 變量 配置文件

需求描述

通常情況下,一個Tomcat站點由於可能出現單點故障及無法應付過多客戶復雜多樣的請求等問題,不能單獨應用於生產環境下,所以我們需要一套更可靠的解決方案來完善Web站點架構。
Nginx是一款非常優秀的http服務器軟件,它能夠支持高達50000個並發連接數的響應,擁有強大的靜態資源處理能力,運行穩定,並且內存、CPU等系統資源消耗非常低。目前很多大型網站都應用Nginx服務器作為後端網站程序的反向代理及負載均衡器,來提升整個站點的負載並發能力。

工作原理

技術分享圖片

反向代理是指以代理服務器來接受Internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給Internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。

實驗環境

  • 系統環境:CentOS7.4
  • Nginx反向代理服務器IP地址:192.168.100.71
  • Tomcat01服務器IP地址:192.168.100.72
  • Tomcat02服務器IP地址:192.168.100.73
  • yum掛載目錄:/mnt/sr0
  • 相關源碼包下載地址:百度雲下載 ??密碼:uhzm

搭建步驟

一、準備工作

1、關閉防火墻及selinux

[root@localhost ~]# systemctl stop firewalld.service #關閉防火墻
[root@localhost ~]# systemctl disable firewalld.service #隨開機自動關閉

[root@localhost ~]# vim /etc/sysconfig/selinux
技術分享圖片

[root@localhost ~]# reboot #重啟Linux生效

二、Tomcat01主機搭建服務

1、安裝C語言編譯器

[root@localhost ~]# yum -y install gcc gcc-c++

2、安裝jdk

[root@localhost ~]# tar xvfz jdk-8u91-linux-x64.tar.gz #解壓jdk
[root@localhost ~]# mv jdk1.8.0_91/ /usr/local/java
[root@localhost ~]# vim /etc/profile #修改系統環境變量配置文件

末尾添加以下四行:

JAVA_HOME=/usr/local/java
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

[root@localhost ~]# source /etc/profile #配置文件重新生效

3、查看Java版本

[root@localhost ~]# java -version
技術分享圖片

4、安裝Tomcat

[root@localhost ~]# tar xvfz apache-tomcat-8.5.16.tar.gz #解壓tomcat
[root@localhost ~]# mv apache-tomcat-8.5.16/ /usr/local/tomcat8

5、啟動、停止服務

[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh #啟動服務
[root@localhost ~]# netstat -anpt | grep ":8080"
技術分享圖片

[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh #停止服務

6、編輯默認首頁

[root@localhost ~]# mkdir -pv /web/webapp1 #創建站點目錄
[root@localhost ~]# vim /web/webapp1/index.jsp #編輯默認首頁
技術分享圖片

7、修改主配置文件

[root@localhost ~]# cd /usr/local/tomcat8/conf/ #進入配置文件目錄下
[root@localhost conf]# vim server.xml #編輯主配置文件
技術分享圖片

8、訪問頁面

技術分享圖片

二、Tomcat02主機搭建服務

安裝配置可以參照01主機配置,略……

1、編輯默認首頁

技術分享圖片

2、訪問首頁

技術分享圖片

三、搭建Nginx反向代理服務

1、安裝相關工具包

[root@redhat6_1 ~]# yum -y install gcc gcc-c++
[root@redhat6_1 ~]# yum -y install pcre-devel zlib-devel openssl openssl-devel

2、創建Nginx進程用戶

[root@redhat6_1 ~]# useradd -M -s /sbin/nologin nginx

3、安裝Nginx

[root@redhat6_1 ~]# tar xvfz nginx-1.6.0.tar.gz #解壓
[root@redhat6_1 ~]# cd nginx-1.6.0
[root@redhat6_1 nginx-1.6.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_ssl_module #配置
[root@redhat6_1 nginx-1.6.0]# make && make install #編譯及編譯安裝

4、優化路徑

[root@localhost ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

5、修改主配置文件

[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf
技術分享圖片

四、測試負載均衡效果

技術分享圖片

Nginx+tomcat實現反向代理(內附源碼包)