千家信息网

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怎么配置负载均衡和动静分离了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

0