Nginx+Tomcat怎么配置负载均衡和动静分离
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这期内容当中小编将会给大家带来有关Nginx+Tomcat怎么配置负载均衡和动静分离,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Nginx应用Nginx是一款非常
千家信息网最后更新 2025年01月24日Nginx+Tomcat怎么配置负载均衡和动静分离
这期内容当中小编将会给大家带来有关Nginx+Tomcat怎么配置负载均衡和动静分离,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
Nginx应用
Nginx是一款非常优秀的HTTP服务器软件
支持高达50000个并发连接数的响应
拥有强大的静态资源处理能力
运行稳定
内存、CPU等系统资源消耗非常低
目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力
Nginx负载均衡实现原理
Nginx配置反向代理的主要参数
upstream 服务池名{}
配置后端服务器池,以提供响应数据
proxy_ _pass http://服务池名
配置将访问请求转发给后端服务器池的服务器处理
Nginx静态处理优势
Nginx处理静态页面的效率远高于Tomcat的处理能力
如果Tomcat的请求量为1000次,则Nginx的请求量为6000次
Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6M
Nginx处理静态资源的能力是Tomcat处理的6倍,优势可见一斑
动静分离原理
服务端接收来自客户端的请求中,既有静态资源也有动态资源
实验环境:
Nginx服务器:192.168.52.135Tomcat服务器1:192.168.52.134Tomcat服务器2:192.168.52.150
1、将实验所需工具包从宿主机共享出去
负载均衡配置:
一、搭建Tomcat服务器1
1、安装jdk
[root@tomcat1 ~]# mkdir /mnt/tools //创建挂载目录[root@tomcat1 ~]# mount.cifs //192.168.100.100/tools /mnt/tools/ //挂载共享工具包Password for root@//192.168.100.100/tools: [root@tomcat1 ~]# cd /mnt/tools/tomcat/ //切换到挂载目录[root@tomcat1 tomcat]# ls12D18CFCD6599AFF0445766ACC4CA231C5025773.torrent apache-jmeter-5.1.zip jdk-8u201-linux-x64.rpmapache-jmeter-5.1 apache-tomcat-9.0.16.tar.gz tomcat优化压测.jmx[root@tomcat1 tomcat]#[root@tomcat1 tomcat]# rpm -ivh jdk-8u201-linux-x64.rpm //直接安装rpm包
2、配置环境变量
[root@tomcat1 tomcat]# cd /usr/java/jdk1.8.0_201-amd64/ //切换目录[root@tomcat1 jdk1.8.0_201-amd64]# vim /etc/profile //修改系统环境变量文件##文件末尾添加环境变量export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATH[root@tomcat1 jdk1.8.0_201-amd64]# source /etc/profile //重新加载配置文件[root@tomcat1 jdk1.8.0_201-amd64]# java -version //查看版本java version "1.8.0_201"Java(TM) SE Runtime Environment (build 1.8.0_201-b09)Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)[root@tomcat1 jdk1.8.0_201-amd64]#
3、配置Tomcat
[root@tomcat1 jdk1.8.0_201-amd64]# cd /mnt/tools/tomcat/ //切换到挂载目录[root@tomcat1 tomcat]# tar zxf apache-tomcat-9.0.16.tar.gz -C /opt/ //解压到"/opt/"目录[root@tomcat1 tomcat]# mv /opt/apache-tomcat-9.0.16/ /usr/local/tomcat9 //移动到"/usr/local/"目录并重命名[root@tomcat1 bin]# ln -s /usr/local/tomcat9/bin/startup.sh /usr/bin/ //建立启动脚本软链接[root@tomcat1 bin]# ln -s /usr/local/tomcat9/bin/shutdown.sh /usr/bin/ //建立关闭脚本软链接[root@tomcat1 bin]#[root@tomcat1 bin]# startup.sh //开启Tomcat服务Using CATALINA_BASE: /usr/local/tomcat9Using CATALINA_HOME: /usr/local/tomcat9Using CATALINA_TMPDIR: /usr/local/tomcat9/tempUsing JRE_HOME: /usr/java/jdk1.8.0_201-amd64Using CLASSPATH: /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jarTomcat started.[root@tomcat1 bin]#[root@tomcat1 bin]# netstat -ntap | grep 8080 //查看端口tcp6 0 0 :::8080 :::* LISTEN 19488/java [root@tomcat1 bin]# [root@tomcat1 bin]# systemctl stop firewalld.service //关闭防火墙[root@tomcat1 bin]# setenforce 0 //关闭增强性安全功能[root@tomcat1 bin]#
4、测试访问
5、添加站点和首页文件
[root@tomcat1 bin]# mkdir -pv /web/webapp1 //创建站点目录mkdir: 已创建目录 "/web"mkdir: 已创建目录 "/web/webapp1"[root@tomcat1 bin]# vim /web/webapp1/index.jsp //添加首页文件<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>JSP test1 page <% out.println("Welcome to test site,http://www.test1.com");%>
6、修改Tomcat配置文件
[root@tomcat1 bin]# cd ../conf/ //切换目录[root@tomcat1 conf]# vim server.xml //修改配置文件##在Host标签里,添加下面内容 [root@tomcat1 conf]# shutdown.sh //关闭服务Using CATALINA_BASE: /usr/local/tomcat9Using CATALINA_HOME: /usr/local/tomcat9Using CATALINA_TMPDIR: /usr/local/tomcat9/tempUsing JRE_HOME: /usr/java/jdk1.8.0_201-amd64Using CLASSPATH: /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar[root@tomcat1 conf]# startup.sh //开启服务Using CATALINA_BASE: /usr/local/tomcat9Using CATALINA_HOME: /usr/local/tomcat9Using CATALINA_TMPDIR: /usr/local/tomcat9/tempUsing JRE_HOME: /usr/java/jdk1.8.0_201-amd64Using CLASSPATH: /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jarTomcat started.[root@tomcat1 conf]#
7、测试访问网站
二、搭建Tomcat服务器2
1、安装jdk
[root@tomcat2 ~]# mkdir /mnt/tools //创建挂载目录[root@tomcat2 ~]# mount.cifs //192.168.100.100/tools /mnt/tools/ //挂载共享工具包Password for root@//192.168.100.100/tools: [root@tomcat2 ~]# cd /mnt/tools/tomcat/ //切换到挂载目录[root@tomcat2 tomcat]# rpm -ivh jdk-8u201-linux-x64.rpm //直接安装rpm包
2、配置环境变量
[root@tomcat2 tomcat]# cd /usr/java/jdk1.8.0_201-amd64/ //切换目录[root@tomcat2 jdk1.8.0_201-amd64]# vim /etc/profile //修改系统环境变量文件##文件末尾添加环境变量export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATH[root@tomcat2 jdk1.8.0_201-amd64]# source /etc/profile //重新加载配置文件[root@tomcat2 jdk1.8.0_201-amd64]# java -version //查看版本java version "1.8.0_201"Java(TM) SE Runtime Environment (build 1.8.0_201-b09)Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)[root@tomcat2 jdk1.8.0_201-amd64]#
3、配置Tomcat
[root@tomcat2 jdk1.8.0_201-amd64]# cd /mnt/tools/tomcat/ //切换到挂载目录[root@tomcat2 tomcat]# tar zxf apache-tomcat-9.0.16.tar.gz -C /opt/ //解压到"/opt/"目录[root@tomcat2 tomcat]# mv /opt/apache-tomcat-9.0.16/ /usr/local/tomcat9 //移动到"/usr/local/"目录并重命名[root@tomcat2 tomcat]# ln -s /usr/local/tomcat9/bin/startup.sh /usr/bin/ //建立启动脚本软链接[root@tomcat2 tomcat]# ln -s /usr/local/tomcat9/bin/shutdown.sh /usr/bin/ //建立关闭脚本软链接[root@tomcat2 tomcat]# startup.sh //开启服务Using CATALINA_BASE: /usr/local/tomcat9Using CATALINA_HOME: /usr/local/tomcat9Using CATALINA_TMPDIR: /usr/local/tomcat9/tempUsing JRE_HOME: /usr/java/jdk1.8.0_201-amd64Using CLASSPATH: /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jarTomcat started.[root@tomcat2 tomcat]# netstat -ntap | grep 8080 //查看端口tcp6 0 0 :::8080 :::* LISTEN 52941/java [root@tomcat2 tomcat]#[root@tomcat2 tomcat]# systemctl stop firewalld.service //关闭防火墙[root@tomcat2 tomcat]# setenforce 0 //关闭增强性安全功能[root@tomcat2 tomcat]#
4、检测访问
5、添加站点和首页文件
[root@tomcat2 tomcat]# mkdir -pv /web/webapp1 //创建站点目录mkdir: 已创建目录 "/web"mkdir: 已创建目录 "/web/webapp1"[root@tomcat2 tomcat]# vim /web/webapp1/index.jsp //添加首页文件<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>JSP test1 page <% out.println("Welcome to test site,http://www.test2.com");%>
6、修改Tomcat配置文件
[root@tomcat2 tomcat]# cd /usr/local/tomcat9/conf/ //切换目录[root@tomcat2 conf]# vim server.xml //修改配置文件##在Host标签里,添加下面内容 [root@tomcat2 conf]# shutdown.sh //关闭服务Using CATALINA_BASE: /usr/local/tomcat9Using CATALINA_HOME: /usr/local/tomcat9Using CATALINA_TMPDIR: /usr/local/tomcat9/tempUsing JRE_HOME: /usr/java/jdk1.8.0_201-amd64Using CLASSPATH: /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar[root@tomcat2 conf]# startup.sh //开启服务Using CATALINA_BASE: /usr/local/tomcat9Using CATALINA_HOME: /usr/local/tomcat9Using CATALINA_TMPDIR: /usr/local/tomcat9/tempUsing JRE_HOME: /usr/java/jdk1.8.0_201-amd64Using CLASSPATH: /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jarTomcat started.[root@tomcat2 conf]#
7、检测访问站点
三、搭建Nginx服务器
1、安装环境包
[root@nginx ~]# yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++............//省略过程[root@nginx ~]#
2、解压Nginx源码包
[root@nginx ~]# mkdir /mnt/tools //创建挂载目录[root@nginx ~]# mount.cifs //192.168.100.100/tools /mnt/tools/ //挂载共享目录Password for root@//192.168.100.100/tools: [root@nginx ~]# cd /mnt/tools/LNMP/ //切换到挂载目录[root@nginx LNMP]# lsDiscuz_X3.4_SC_UTF8.zip nginx-1.12.2.tar.gz php-7.1.20.tar.gzmysql-boost-5.7.20.tar.gz php-7.1.10.tar.bz2[root@nginx LNMP]# tar zxf nginx-1.12.2.tar.gz -C /opt/ //解压源码包[root@nginx LNMP]# cd /opt/ [root@nginx opt]# lsnginx-1.12.2 rh[root@nginx opt]#
3、编译安装Nginx服务
[root@nginx opt]# cd nginx-1.12.2/ //切换目录[root@nginx nginx-1.12.2]# useradd -M -s /sbin/nologin nginx //创建用户nginx[root@nginx nginx-1.12.2]# ./configure \ //配置nginx服务> --prefix=/usr/local/nginx \ //安装路径> --user=nginx \ //属主> --group=nginx \ //属组> --with-file-aio \ //启用file aio支持(一种APL文件传输格式)> --with-http_stub_status_module \ //获取nginx自上次启动以来的工作状态> --with-http_gzip_static_module \ //在线实时压缩输出数据流> --with-http_flv_module \ //为Flash Video(FLV)文件 提供服务端伪流媒体支持> --with-http_ssl_module //为HTTPS提供了必要的支持[root@nginx nginx-1.12.2]# make && make install
4、Nginx服务管理优化
[root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //为nginx命令建立软链接,方便系统识别[root@nginx nginx-1.12.2]# [root@nginx nginx-1.12.2]# vim /etc/init.d/nginx //添加管理脚本#!/bin/bash# chkconfig: - 99 20# description: Nginx Service Control ScriptPROG="/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 1esacexit 0[root@nginx nginx-1.12.2]# chmod +x /etc/init.d/nginx //给脚本添加执行权限[root@nginx nginx-1.12.2]# chkconfig --add nginx //添加让service工具能够识别[root@nginx nginx-1.12.2]#[root@nginx nginx-1.12.2]# service nginx start //开启服务[root@nginx nginx-1.12.2]# service nginx stop //关闭服务[root@nginx nginx-1.12.2]#
5、修改Nginx服务配置文件
[root@nginx nginx-1.12.2]# cd /usr/local/nginx/conf/ //切换目录[root@nginx conf]# lsfastcgi.conf fastcgi_params.default mime.types nginx.conf.default uwsgi_paramsfastcgi.conf.default koi-utf mime.types.default scgi_params uwsgi_params.defaultfastcgi_params koi-win nginx.conf scgi_params.default win-utf[root@nginx conf]# vim nginx.conf //修改配置文件 upstream tomcat-server { ##添加tomcat服务器 server 192.168.52.134:8080 weight=1; server 192.168.52.150:8080 weight=1; } location / { root html; index index.html index.htm; proxy_pass http://tomcat-server; ##添加代理 }[root@nginx conf]# nginx -t //检查配置文件格式nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@nginx conf]# [root@nginx conf]# service nginx start //开启服务[root@nginx conf]# netstat -ntap | grep nginx //查看端口tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 41747/nginx: master [root@nginx conf]# systemctl stop firewalld.service 关闭防火墙[root@nginx conf]# setenforce 0 //关闭增强性安全功能[root@nginx conf]#
四、检测负载均衡服务
1、访问Nginx代理服务器IP地址
2、刷新页面,测试是否负载均衡
(生产环境下,两个页面需要相同,这是为了方便演示故意设置不同)
动静分离配置
一、Nginx服务器配置
1、修改Nginx服务配置文件
[root@nginx conf]# vim nginx.conf //修改配置文件##不用修改 upstream tomcat-server { server 192.168.52.134:8080 weight=1; server 192.168.52.150:8080 weight=1; } location / { root html; index index.html index.htm; # proxy_pass http://tomcat-server; ##注释 }##添加以下内容 location ~.*.jsp$ { proxy_pass http://tomcat-server; proxy_set_header Host $host; } location ~.*.\.(gif|jpg|jpeg|png|bmp|swf|css)$ { root html; expires 30d; }
2、修改Nginx服务首页文件
[root@nginx conf]# vim ../html/index.html //支持中文字符集静态页面 静态页面
这是静态页面
[root@nginx conf]# service nginx stop [root@nginx conf]# service nginx start [root@nginx conf]#
3、测试首页
二、Tomcat服务器1配置
创建一个新的首页文件
[root@tomcat1 ~]# cd /usr/local/tomcat9/webapps/ //切换目录[root@tomcat1 webapps]# lsdocs examples host-manager manager ROOT[root@tomcat1 webapps]# mkdir test //创建站点目录[root@tomcat1 webapps]# cd test/[root@tomcat1 test]# vim index.jsp //添加首页文件<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.util.Date" %><%@ page import="java.text.SimpleDateFormat" %>动态页面1 动态页面1
三、Tomcat服务器2配置
创建一个新的首页文件
[root@tomcat2 ~]# cd /usr/local/tomcat9/webapps/ //切换目录[root@tomcat2 webapps]# lsdocs examples host-manager manager ROOT[root@tomcat2 webapps]# mkdir test //创建站点目录[root@tomcat2 webapps]# cd test/[root@tomcat2 test]# vim /index.jsp //添加首页文件<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.util.Date" %><%@ page import="java.text.SimpleDateFormat" %>动态页面2 动态页面2
四、测试能否动静分离
1、通过Nginx服务器IP地址访问动态文件
2、刷新页面,测试负载均衡
五、让Tomcat服务器调用Nginx服务器站点的图片
1、分别在两台Tomcat服务器的首页文件,添加图片
[root@tomcat1 test]# vim index.jsp动态页面1
//只需修改此行[root@tomcat2 test]# vim index.jsp动态页面2
//只需修改此行
2、将图片添加到Nginx服务器指定站点
[root@nginx conf]# cd /mnt/tools/ //切换到挂载点[root@nginx tools]# mkdir -p /usr/local/nginx/html/test //创建站点目录test,注意必须与Tomcat站点相同[root@nginx tools]# cp picture.jpg /usr/local/nginx/html/test/ //复制图片到站点[root@nginx tools]#
3、测试访问
4、再次刷新,测试负载均衡
上述就是小编为大家分享的Nginx+Tomcat怎么配置负载均衡和动静分离了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
服务
目录
文件
配置
服务器
切换
页面
站点
首页
均衡
环境
动态
静态
测试
处理
变量
脚本
动静
内容
资源
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
学习网络安全的目标
数据库字符集导入都是
欧洲互联网科技公司
高安im即时通讯软件开发
中国专利全文数据库
数据库字段添加固定前缀
数据库可扩充
中国互联网的服务器
福建二代数据库
网络安全ppt课件照片
win服务器转发软件
海康公用监控服务器地址
人间地狱突然不显示服务器了
唐山市软件开发公司
第一次使用需要创建数据库吗
软件开发 海报
数据库扩容增加加数据文件
tbc祈福服务器时光徽章价格
远程连接服务器失败
英国情报机构与网络安全
计算机病毒可以连接数据库
国家网络安全日心得
亚信科技软件开发待遇如何
江西海致网络技术公司
我的世界最欢迎玩家的服务器
东莞 华为网络安全实验室
吉林通用服务器厂家
哪里需要数据库
龙岩公司软件开发
舆情网络安全教育活动准备