Nginx+Tomcat负载均衡、动静分离集群
生活随笔
收集整理的這篇文章主要介紹了
Nginx+Tomcat负载均衡、动静分离集群
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Nginx+Tomcat負載均衡、動靜分離集群
- 一、Nginx實現負載均衡原理
- 二、Nginx 配置反向代理的主要參數
- 三、Nginx 動靜分離實現原理和優勢
- 1、Nginx 靜態處理優勢
- 2、動靜分離原理
- 四、Nginx + Tomcat 動靜分離、負載均衡配置步驟
- 1、環境搭建
- 2、部署 Nginx 負載均衡服務器
- 3、部署兩臺 Tomcat 應用服務器
- 4、配置動靜分離
- Tomcat1配置
- Tomcat2配置
- Nginx配置
- 5、訪問測試
一、Nginx實現負載均衡原理
- Nginx實現負載均衡是通過反向代理實現
- Nginx服務器作為前端,Tomcat服務器作為后端,web頁面請求由Nginx服務來進行轉發。
但是不是把所有的web請求轉發,而是將靜態頁面請求Ncinx服務器自己來處理,動態頁面請求,轉發給后端的Tomcat服務器來處理。 - 據我們所知,Tomcat是屬于輕量級的應用服務器,可接受訪問量可能會不足,所以我們需要多臺Tromcat服務器,然后通過Nginx配置權重來進行挑選Tomcat服務器去進行處理,負載均衡的一種策略。
二、Nginx 配置反向代理的主要參數
- 1、upstream 服務池名 {}
作用:配置后端服務器池,以提供響應數據 - 2、proxy_pass http:// 服務池名
作用:配置將訪問請求轉發給后端服務器池的服務器處理
三、Nginx 動靜分離實現原理和優勢
1、Nginx 靜態處理優勢
- Nginx 處理靜態頁面的效率遠高于 Tomcat 的處理能力
- 若 Tomcat 的請求量為1000次,則 Nginx 的請求量為6000次
- Tomcat 每秒的吞吐量為0.6M,Nginx 的每秒吞吐量為3.6M
- Nginx 處理靜態資源的能力是 Tomcat 處理的6倍
2、動靜分離原理
- 服務端接收來自客戶端的請求中,既有靜態資源也有動態資源,靜態資源由 Nginx 提供服務,動態資源由 Nginx 轉發至后端。
四、Nginx + Tomcat 動靜分離、負載均衡配置步驟
1、環境搭建
| Nginx | CentOS7 | 192.168.172.10 | nginx-1.12.0.tar.gz |
| Tomcat1 | CentOS7 | 192.168.172.20 | apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm |
| Tomcat2 | CentOS7 | 192.168.172.30 | apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm |
2、部署 Nginx 負載均衡服務器
#!/bin/bash #腳本說明:編譯安裝nginx服務 #注意:使用前請將nginx-1.12.0.tar.gz放入/opt目錄下#關閉防火墻 systemctl stop firewalld systemctl disable firewalld setenforce 0#安裝所需開發包和編譯環境、編譯器 yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make#創建程序用戶,便于準確控制訪問 useradd -M -s /sbin/nologin nginx#解壓安裝包 cd /opt tar zxvf nginx-1.12.0.tar.gz -C /opt/#編譯安裝nginx;指定安裝路徑、指定用戶名、組名、啟用模塊以支持統計狀態 cd /opt/nginx-1.12.0/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-file-aio --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_modulemake && make install#軟鏈接便于系統識別nginx操作命令 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/#添加nginx系統服務 echo '[Unit] Description=nginx After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStart=/usr/local/nginx/sbin/nginx ExecrReload=/bin/kill -s HUP $MAINPID ExecrStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target' > /lib/systemd/system/nginx.service#賦權及開啟服務、開啟開機自啟 chmod 754 /lib/systemd/system/nginx.service systemctl restart nginx.service systemctl enable nginx.service
3、部署兩臺 Tomcat 應用服務器
#!/bin/bash #安裝Tomcat服務#關閉防火墻 systemctl stop firewalld systemctl disable firewalld setenforce 0#安裝JDK cd /opt rpm -ivh jdk-8u201-linux-x64.rpm#設置JDK環境變量 echo 'export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$PATH' > /etc/profile.d/java.shsource /etc/profile#安裝并啟動Tomcat cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mv apache-tomcat-9.0.16 /usr/local/tomcat /usr/local/tomcat/bin/startup.sh
4、配置動靜分離
Tomcat1配置
mkdir /usr/local/tomcat/webapps/testvim /usr/local/tomcat/webapps/test/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>JSP test1 page</title> </head> <body> <% out.println("動態頁面1");%> </body> </html>#修改配置文件 vim /usr/local/tomcat/conf/server.xml <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" /> </Host>/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
Tomcat2配置
mkdir /usr/local/tomcat/webapps/testvim /usr/local/tomcat/webapps/test/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>JSP test2 page</title> </head> <body> <% out.println("動態頁面2");%> </body> </html>#修改配置文件 vim /usr/local/tomcat/conf/server.xml <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"><Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" /> </Host>/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
Nginx配置
#準備靜態頁面和靜態圖片 echo '<html><body><h1>this is static</h1></body></html>' > /usr/local/nginx/html/index.html vim /usr/local/nginx/conf/nginx.conf ...... http { ...... #gzip on;upstream tomcat_server {server 192.168.172.20:8080 weight=1;server 192.168.172.30:8080 weight=1; }server {listen 80;server_name localhost;location ~ .*\.jsp$ {#配置Nginx處理動態頁面請求,將 .jsp 文件請求轉發到Tomcat 服務器處理proxy_pass http://tomcat_server;#charset koi8-r;#access_log logs/host.access.log main;systemctl restart nginx.service5、訪問測試
總結
以上是生活随笔為你收集整理的Nginx+Tomcat负载均衡、动静分离集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神奇内存颗粒:学习利器还是灵丹妙药?
- 下一篇: 小米5x内存查看攻略:三步轻松搞定