Nginx—tomcat負載均衡動靜分離群集
Nginx—tomcat負載均衡動靜分離群集
一.Tomcat重要目錄
bin :存放啟動和關閉Tomcat指令碼
conf : 存放Tomcat不同的配置檔案
doc:存放Tomcat文件
lib: 存放Tomcat執行需要的庫檔案
logs:存放Tomcat執行時的
src: 存放Tomcat的原始碼
webapps: Tomcat的主要Web釋出目錄
work: 存放jsp編譯後產生的class檔案
二.Nginx應用
1.Nginx是一款非常優秀的HTTP伺服器軟體
支援高達50000個併發連線數的響應
擁有強大的靜態資源處理能力
執行穩定
記憶體、CPU等系統資源消耗非常低
目前很多大型網站都應用Nginx伺服器作為後端網站程式的方向代理及負載均衡器,提升整個站點的負載併發能力。
三.Nginx負載均衡實現原理
nginx配置方向代理的主要引數
1. upstream 服務池名{}
配置後端伺服器池,以提供響應資料
2.proxy_pass http://服務池名
配置將訪問請求轉發給後端伺服器池的服務處理
nginx動靜分離實現原理
1.動靜分離原理
服務端接受來自客戶端的請求中,既有靜態資源也有動態資源,靜態資源由nginx提供服務,動態資源nginx轉發至後端。
2.nginx靜態處理優勢
nginx處理靜態頁面的效率遠高於tomcat的處理能力
若tomcat的請求量為1000次,則nginx的請求量為6000次
tomcat每秒的吞吐量為0.6M,Nginx的每秒吞吐量為3.6M
Nginx處理靜態資源的能力是Tomcat處理的6倍
四.部署與測試網站搭建
1.要求部署兩臺後端tomcat伺服器
2.為了進行測試,搭建兩個內容不同網站
3.tomcat部署網站搭建步驟
關閉firewall防火牆
安裝JDK,配置JAVA環境
安裝配置Tomcat
建立/web/webapp1目錄,修改server.xml,將網站檔案目錄更改到/web/webapp1/路徑下
/web/webapp1/下建立測試頁面index.jsp,並進行測試
五.Nginx配置負載均衡、動靜分離
1.在Nginx伺服器上安裝Nginx,反向代理兩個Tomcat站點並實現負載均衡
關閉Firewalld防火牆
安裝Nginx依賴軟體包
解壓並編譯安裝Nginx
配置nginx.conf,新增location靜態頁面處理新增upstream配置段與proxy_pass
檢測配置檔案與啟動Nginx
測試負載均衡、動靜分離效果
六.配置過程
1.實驗環境
Nginx伺服器(192.168.13.177)
Tomcat1伺服器(192.168.13.151)
Tomcat2伺服器 (192.168.13.178)
client測試機
2.負載均衡
在Tomcat1,Tomcat2上安裝Tomcat服務
[root@tomcat1 ~]# systemctl stop firewalld.service ##關閉防火牆
[root@tomcat1 ~]# mkdir /abc
[root@tomcat1 ~]# mount.cifs //192.168.100.3/LNMP-C7 /abc/
[root@tomcat1 ~]# cd /abc/tomcat/
[root@tomcat1 tomcat]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/ ##解壓JDK
[root@tomcat1 tomcat]# vim /etc/profile ##配置環境變數
##大G末行加入
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
[root@tomcat1 tomcat]# source /etc/profile ##重新整理配置檔案
[root@tomcat1 tomcat]# tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/ ##解壓
[root@tomcat1 tomcat]# cd /usr/local/
[root@tomcat1 local]# mv apache-tomcat-8.5.16/ tomcat
[root@tomcat1 local]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
##將啟動和關閉指令碼便於系統識別
[root@tomcat1 local]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
[root@tomcat1 local]# mkdir -p /web/webapp1 ##建立站點
[root@tomcat1 local]# vim /web/webapp1/index.jsp ##寫入jsp網頁內容
##jsp網頁內容
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("Welcome KGC Web");%> ##輸出資訊
</body>
</html>
[root@tomcat1 local]# vim /usr/local/tomcat/conf/server.xml ##修改Tomcat配置檔案
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1" path="" reloadable="false"> ##新增站點資訊
</Context>
[root@tomcat1 ~]# startup.sh ##啟動服務
##Tomcat上網頁內容為accp其他配置一樣
在Nginx伺服器上安裝Nginx
[root@nginx ~]# systemctl stop firewalld.service ##關閉防火牆
[root@nginx ~]# setenforce 0
[root@nginx ~]# yum install pcre-devel zlib-devel gcc gcc-c++ make -y ##安裝環境必要元件
[root@nginx ~]# mkdir /abc
[root@nginx ~]# mount.cifs //192.168.100.3/LNMP-C7 /abc/ ##掛載
Password for root@//192.168.100.3/LNMP-C7:
[root@nginx ~]# cd /abc/
[root@nginx abc]# tar zxvf nginx-1.12.2.tar.gz -C /usr/local/ ##解壓
[root@nginx abc]# useradd -M -s /sbin/nologin nginx ##建立系統使用者
[root@nginx abc]# cd /usr/local/nginx-1.12.2/
[root@nginx nginx-1.12.2]# ./configure \ ##配置
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module \
> --with-http_gzip_static_module \
> --with-http_flv_module
[root@nginx nginx-1.12.2]# make && make install ##編譯安裝
修改Nginx配置檔案
[root@nginx nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream tomcat-server { #新增地址池
server 192.168.13.151:8080 weight=1;
server 192.168.13.178:8080 weight=1;
}
server {
listen 80;
.....省略
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat-server; #新增代理,呼叫伺服器地址池
}
[root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ##便於系統識別
[root@nginx nginx-1.12.2]# nginx ##開啟服務
使用client測試機訪問nginx代理伺服器
2.動靜分離
在Nginx上修改配置檔案
[root@nginx nginx-1.12.2]# vim /etc/init.d/nginx ##編寫service啟動指令碼
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
[root@nginx nginx-1.12.2]# chmod +x /etc/init.d/nginx
[root@nginx nginx-1.12.2]# chkconfig --add nginx
[root@nginx nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
server {
...省略...
location ~.*.jsp$ { ##匹配jsp頁面跳轉代理伺服器池
proxy_pass http://tomcat-server;
proxy_set_header Host $host;
}
location / {
root html/test; ##修改站點
index index.html index.htm;
proxy_pass http://tomcat-server;
}
[root@nginx nginx-1.12.2]# 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>
[root@nginx nginx-1.12.2]# service nginx stop ##關閉開啟服務
[root@nginx nginx-1.12.2]# service nginx start
在Tomcat1,Tomcat2上建立jsp動態頁面
[root@tomcat1 ~]# mkdir /usr/local/tomcat/webapps/test
[root@tomcat1 ~]# vim /usr/local/tomcat/webapps/test/index.jsp
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %> ##開頭申明
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>動態頁面</title>
</head>
<body>
<div>動態頁面1</div>
</body>
</html>
##在Tomcat2上修改為動態頁面22
//訪問靜態
http://192.168.13.177/
//訪問動態
http://192.168.13.177/test/index.jsp
Nginx處理靜態圖片,Tomcat處理動態頁面
在Tomcat1,Tomcat2上頁面新增圖片
[root@tomcat1 ~]# vim /usr/local/tomcat/webapps/test/index.jsp
<body>
<div>動態頁面</div><br><img src="11.jpg"> //新增頁面圖片
</body>
[root@tomcat01 local]# vim /usr/local/tomcat/conf/server.xml
#在第149行下追加以下條目,
<Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="false">
</Context>
[root@tomcat1 test]# shutdown.sh ##關閉重啟
[root@tomcat1 test]# startup.sh
在Nginx上修改配置檔案
[root@nginx nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
root html/test;
expires 30d;
}
[root@nginx nginx-1.12.2]# mkdir /usr/local/nginx/html/test
[root@nginx nginx-1.12.2]# cp /abc/11.jpg /usr/local/nginx/html/test/
#重啟服務
[root@nginx html]# service nginx restart
測試
相關文章
- Nginx+Tomcat負載均衡,動靜分離群集部署解析NginxTomcat負載
- 伺服器群集—Nginx+Tomcat+keepalived負載均衡、動靜分離群集伺服器NginxTomcat負載
- 帶你瞭解Nginx+Tomcat負載均衡,動靜分離群集NginxTomcat負載
- Nginx + Tomcat 動靜分離實現負載均衡NginxTomcat負載
- Nginx+Tomcat實現負載均衡、動靜分離叢集部署NginxTomcat負載
- Nginx+Tomcat+Keepalived+Memcache 負載均衡動靜分離技術NginxTomcat負載
- Nginx 動靜分離與負載均衡的實現Nginx負載
- Tomcat+Nginx實現動靜分離和負載均衡架構部署TomcatNginx負載架構
- nginx反向代理負載均衡與動靜頁面分離Nginx負載
- Linux下Nginx+Tomcat負載均衡和動靜分離配置要點LinuxNginxTomcat負載
- Nginx作為動靜分離、快取與負載均衡初探Nginx快取負載
- Nginx使用篇:實現負載均衡、限流與動靜分離Nginx負載
- Nginx+Tomcat+Redis實現負載均衡、資源分離、session共享NginxTomcatRedis負載Session
- Nginx+Tomcat實現動靜分離NginxTomcat
- Nginx/Httpd負載均衡tomcat配置Nginxhttpd負載Tomcat
- Nginx+Tomcat部署負載均衡NginxTomcat負載
- nginx+tomcat動靜態資源分離NginxTomcat
- nginx+tomcat實現負載均衡NginxTomcat負載
- 《Nginx系列》之青銅入門篇 反向代理 負載均衡 動靜分離就是這麼簡單Nginx負載
- LVS負載均衡群集負載
- nginx+tomcat負載均衡配置 火推NginxTomcat負載
- nginx+tomcat反向代理負載均衡配置NginxTomcat負載
- 配置apache和nginx的tomcat負載均衡ApacheNginxTomcat負載
- 11,nginx動靜分離Nginx
- NGINX 負載均衡Nginx負載
- 【Nginx】負載均衡Nginx負載
- nginx負載均衡Nginx負載
- nginx讓多個tomcat實現負載均衡NginxTomcat負載
- nginx+tomcat實現反向代理+負載均衡NginxTomcat負載
- Nginx實現動靜分離Nginx
- LVS負載均衡群集--NAT模式負載模式
- Haproxy搭建 Web 群集實現負載均衡Web負載
- Nginx負載均衡模式Nginx負載模式
- Nginx--負載均衡Nginx負載
- nginx 負載均衡搭建Nginx負載
- Nginx負載均衡策略Nginx負載
- 解析 Nginx 負載均衡Nginx負載
- Nginx+tomcat實現叢集跟負載均衡NginxTomcat負載