Nginx配置、Nginx+Tomcat、动静分离==负载均衡配置转载
原创Nginx+Tomcat动静分离&&负载均衡
文章目录
-
Nginx+Tomcat动静分离&&负载均衡
-
Tomcat简介
- 最初是由Sun软件架构师James·邓肯·戴维森开发公司
- 安装Tomcat之后,将使用或配置安装路径下的目录和文件Tomcat重要文件的
-
Tomcat重要目录
- bin :存储启动和关闭Tomcat脚本
- conf :存放Tomcat不同的配置文件
- doc:存放Tomcat文档
- lib:存放Tomcat需要运行的库文件
- logs:存放Tomcat执行时的LOG文件
- src:存放Tomcat的源代码
- webapps:Tomcat的主要Web发布目录
- work:存放jsp编译后生成class文件
-
Nginx应用
- Nginx是一个非常好的HTTP服务器软件
- 支持高达50 000对并发连接数的响应
- 强大的静态资源处理能力
- 运行稳定
- 内存、CPU系统资源消耗非常低
- 目前使用了许多大型网站。Nginx服务器充当后端网站程序的反向代理和负载平衡器,以提高整个站点的负载并发性。
- 只能处理静态页面。
- Apache可以处理动态和静态页面的处理。
- Tomcat 支持动态页面处理。
- Nginx负载平衡实施原则
- Nginx通过反向代理实现负载平衡。
-
反向代理原则
- Nginx负载平衡实施原则
- Nginx配置反向代理的主要参数
- upstream 服务池名 { }
- 配置后端服务器池以提供响应数据
- proxy_pass http://服务池名
- 配置将访问请求转发到后端服务器池的服务器处理
-
动静分离原理
- 当服务器从客户端接收请求时,既有静态资源,也有动态资源。Nginx提供服务、动态资源Nginx转发到后端
-
Nginx静态处理的优点
- Nginx处理静态页面效率更高Tomcat处理能力
- 若Tomcat请求的数量1000次,则Nginx请求的数量6000次
- Tomcat每秒吞吐量为0.6M,Nginx每秒吞吐量3.6M
- Nginx处理静态资源的能力是Tomcat处理的6倍
-
实验要求
- 需要部署两个后端Tomcat服务器
- 要进行测试,请构建两个内容不同的网站
- Tomcat部署与网站搭建步骤
- 关闭firewall防火墙
- 安装JDK,配置JAVA环境
- 安装配置Tomcat
- 创建/web/webapp1目录,修改server.xml,更改站点文件目录/web/webapp1/路径下
/web/webapp1/在下面创建测试页index.jsp和测试
-
实验环境
- 一台:Nginx 充当动态和静态分离的反向代理的静态页面 192.168.75.166
- 一台:tomcat 处理为动态页面 192.168.75.134
- 一台:tomcat 处理为动态页面 192.168.75.144
-
实验步骤
9.1 Nginx反向代理的配置 192.168.75.166
- Nginx服务基础
- Nginx:高稳定性
- 系统资源消耗低
- 对HTTP并发连接处理能力高(能处理高并发 活到现在的核心)
-
单个物理服务器可以支持30000~50000并发请求
yum -y install pcre-devel zlib-devel gcc gcc-c++ pcre make
pcre-devel : 支持正则表达式 pcre 正则表达式
zlib-devel : 压缩功能
tar zxvf nginx-1.12.2.tar.gz cd nginx-1.12.2 [root@localhost nginx-1.12.2]# useradd -M -s /sbin/nologin nginx
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module make && make install ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
设置Nginx系统引导启动 systemctl
在/etc/init.d 在目录下新建Nginx文件是启动脚本
[root@localhost init.d]# vim nginx
!/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@localhost init.d]# chmod +x nginx //添加权限
[root@localhost init.d]# chkconfig --add nginx //添加到systemctl启动文件设置
[root@localhost init.d]# service nginx stop
9.2 Tomcat 1配置192.168.75.134
iptbales -F
setenforce 0
准备JDK安装包
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local
vim /etc/profile
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
source /etc/profile
java -version //查看版本号
部署Tomcat
[root@promote opt]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/
[root@promote opt]# cd /usr/local/
[root@promote local]# ls
apache-tomcat-9.0.16 etc include lib64 sbin src
bin games lib libexec share
[root@promote local]# mv apache-tomcat-9.0.16/ tomcat
[root@promote local]# cd tomcat/
[root@promote tomcat]# ll
总用量 124
drwxr-x--- 2 root root 4096 8月 13 09:53 bin
-rw-r----- 1 root root 19203 2月 5 2019 BUILDING.txt
drwx------ 2 root root 238 2月 5 2019 conf
-rw-r----- 1 root root 6095 2月 5 2019 CONTRIBUTING.md
drwxr-x--- 2 root root 4096 8月 13 09:53 lib
-rw-r----- 1 root root 57092 2月 5 2019 LICENSE
drwxr-x--- 2 root root 6 2月 5 2019 logs
-rw-r----- 1 root root 2333 2月 5 2019 NOTICE
-rw-r----- 1 root root 3255 2月 5 2019 README.md
-rw-r----- 1 root root 6854 2月 5 2019 RELEASE-NOTES
-rw-r----- 1 root root 16262 2月 5 2019 RUNNING.txt
drwxr-x--- 2 root root 30 8月 13 09:53 temp
drwxr-x--- 7 root root 81 2月 5 2019 webapps
drwxr-x--- 2 root root 6 2月 5 2019 work
[root@promote tomcat]# cd bin/
[root@promote bin]# ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
[root@promote bin]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/
[root@promote bin]# startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@promote bin]# netstat -natp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 13752/java
[root@promote bin]#
9.3 Nginx配置
- Nginx 处理静态图片,Tomcat处理动态图片 nginx 配置
- 代码是动态的
- 图片是静态的
- 动态分离配置
- nginx 服务器的配置 192.168.75.166
-
proxy_pass 模块功能跳转到另一个服务器
vim /usr/local/nginx/conf/nginx.conf
location ~.*.jsp$ { proxy_pass http://192.168.75.134:8080; proxy_set_header Host $host; ##已配置Web服务器防盗链
}
vim /usr/local/nginx/html/index.html
<!DOCTYPE html>
静态页面 静态页面
这是一个静态页面。
9.4 Tomcat 1 192.168.75.134 配置
-
Tomcat的test /indexJSP 和Nginx存储图片的路径应相同,否则无法显示图片。
[root@localhost bin]# mkdir /usr/local/tomcat/webapps/test
[root@localhost bin]# 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/ html14/loose.dtd">
动态页面 动态页面
9.5 Nginx配置 192.168.75.166
-
图像是静态资源,因为Nginx它处理静态页面。所以照片应该放进去Nginx目录,但带有Tomcat的JSP文件的路径对应于
vim /usr/local/nginx/conf/nginx.conf
location ~.*.(gif|jpg|jpeg|png|bmg|swf|css)$ { root html; expires 30d; }
cd /usr/local/nginx/html
mkdir test 把照片放进去 /usr/local/nginx/html/test 目录,因为需要和tomcat 1 相对应
-
Tomcat 1 192.168.75.134 配置
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/ html14/loose.dtd">
动态页面 动态页面//添加
9.6 验证 图像验证动态和静态分离
- 访问静态页面
- http://192.168.75.166
- 访问动态页面
- http://192.168.75.166/test/index.jsp
- 图像验证动态和静态分离
10 . 实验2:负载平衡
10.1 实验环境
- Nginx 192.168.75.166 作为负载平衡服务器
- Tomcat1 192.168.75.134
- Tomcat 2 192.168.75.144 作为后端web服务器
- 以Nginx作为负载平衡器,Tomcat作为应用程序服务器
10.2 Tomcat 2 192.168.75.144 配置
- 安装Tomcat 服务
- 像之前Tomcat1 相同的步骤,请参见详细信息Tomcat1
-
因为之前Tomcat1已经部署Tomcat,因此您只需要部署Tomcat2 服务器内容详细信息如下
mkdir -pv /web/webapp1 cd /web/webapp1 vim 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/ html14/loose.dtd">
web web web web web webb !!!! web web web web web webb !!!!****修改配置文件***
vim /usr/local/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
//添加 //添加
10.3 Nginx服务器配置192.168.75.166
-
部署Nginx 详见目录9.1
vim /usr/local/nginx/conf/nginx.conf
**在http全局添加***
upstream tomcat_server { server 192.168.75.134:8080 weight=1; server 192.168.75.144:8080 weight=5; //权重越高,优先级越高 }
在server中添加 location / { root html; index index.html index.htm; proxy_pass http://tomcat_server; //添加 }
10.4 验证
- 192.168.75.166
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除