Nginx+Tomcat實現動靜分離

叨客金金發表於2020-12-14

Nginx群集

nginx的優點

  • 支援高達50000個併發連線數的響應
  • 擁有強大的靜態資源處理能力
  • 執行穩定
  • 記憶體、CPU等系統資源消耗非常低

靜態處理優勢

  • nginx處理靜態頁面效率遠高於tomcat的處理能力
  • 若tomcat的請求量為1000次,則nginx的請求量為6000次
  • tomcat每秒的吞吐量為0.6M,nginx的每秒吞吐量為3.6M
  • nginx處理靜態資源的能力是tomcat處理的6倍

nginx實現負載均衡

在nginx中配置反向代理:

在主配置檔案中新增
upstream 服務池名 { }
配置後端伺服器池,以提供響應資料
proxy_pass http://服務池名
配置將訪問請求轉發給後端伺服器池的伺服器處理

nginx實現動靜分離

服務端接收來自客戶端的請求中,既有靜態資源也有動態資源,靜態資源由nginx提供服務,動態資源nginx轉發至後端tomcat伺服器

Nginx+Tomcat動靜分離專案例項

本專案包含一臺Nginx排程器192.168.10.12
兩臺Tomcat伺服器192.168.10.13,192.168.10.14

tomcat1

##搭建tomcat依賴的java環境
tar -zxvf jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91/ /usr/local/java
vi /etc/profile
export JAVA_HOME=/usr/local/java
export JAVA_JRE=/usr/local/java/jre
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib:$JAVA_JRE/bin:$JAVA_JRE/lib

source /etc/profile

##部署tomcat
tar -zxvf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16 /usr/local/tomcat
ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/tomcatdown
vi /usr/local/tomcat/conf/server.xml
<Context docBase="/web1" path="" reloadable="false">
</Context>

mkdir /web1
vi /web1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><title>TEST PAGE</title></head>
<body>
<% out.println("傘兵一號盧本偉準備就緒");%>
<div>tomcat 動態網頁</div>
<br/>
<img src="lbw.jpg">
</body>
</html>

tomcatup
netstat -napt | grep 8080		#檢查服務埠開啟

tomcat2

##搭建tomcat依賴的java環境
tar -zxvf jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91/ /usr/local/java
vi /etc/profile
export JAVA_HOME=/usr/local/java
export JAVA_JRE=/usr/local/java/jre
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/lib:$JAVA_JRE/bin:$JAVA_JRE/lib

source /etc/profile

##部署tomcat
tar -zxvf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16 /usr/local/tomcat
ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/tomcatdown
vi /usr/local/tomcat/conf/server.xml
<Context docBase="/web2" path="" reloadable="false">
</Context>

mkdir /web2
vi /web2/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><title>TEST PAGE</title></head>
<body>
<% out.println("給阿姨倒一杯卡布奇諾");%>
<div>tomcat 動態網頁</div>
<br/>
<img src="lbw.jpg">
</body>
</html>

tomcatup
netstat -napt | grep 8080		#檢查服務埠開啟

nginx排程器

安裝部署nginx

yum -y install gcc gcc-c++ make pcre-devel zlib-devel
useradd -M -s /sbin/nologin nginx
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
vi /usr/local/nginx/conf/nginx.conf
user nginx nginx;			
error_log logs/error.log info;		
pid        logs/nginx.pid;	
http {
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
access_log  logs/access.log  main;
server {
charset utf-8;    #主機設定開啟支援utf-8編碼
	   }
}

配置動靜分離反向代理

vi /usr/local/nginx/conf/nginx.conf
http {
	 upstream tomcat_server {		#定義伺服器池
                server 192.168.10.13:8080 weight=1;
                server 192.168.10.14:8080 weight=1;
        }
server {
		location ~ \.jsp$ {			#配置反向代理
                proxy_pass http://tomcat_server;
        }
	}
}

配置靜態資源

cp lbw.jpg /usr/local/nginx/html

測試效果

第一次訪問

在這裡插入圖片描述

第二次訪問

在這裡插入圖片描述

相關文章