Nginx反向代理联动Tomcat实现多实例部署、动静分离、负载均衡

1. 配置反向代理

1.1 前置准备

#所需环境
192.168.67.100 #nginx代理服务器
192.168.67.101 #客户机
192.168.67.102 #真实服务器

1.2 代理服务器配置

vim /apps/nginx/conf/nginx.conf
#编辑主配置文件

#在http块中添加
include        /apps/nginx/conf.d/*.conf
vim /apps/nginx/conf.d/pc.com
#编辑子配置文件

server{
        listen 192.168.67.100:80;
        server_name www.pc.com;
     location / {
        root  /apps/nginx/html/pc;
       proxy_pass http://192.168.67.102;
    }
}

nginx -t
nginx -s reload
#重新加载

在这里插入图片描述

1.3 真实服务器配置

systemctl stop firewalld
setenforce 0 
#关闭防火墙和selinux
yum  install   httpd  -y #安装服务

cd  /var/www/html
echo   "Hi~"  > index.html #主页内容

systemctl start httpd #开启服务

在这里插入图片描述

vi /etc/hosts
#添加地址映射

192.168.67.100 www.pc.com

在这里插入图片描述

1.4 客户机配置

vim  /etc/hosts

192.168.67.100  www.pc.com

在这里插入图片描述

测试

客户机访问代理服务器

curl www.pc.com

在这里插入图片描述

2. Tomcat 多实例部署

2.1 部署JDK

#所需安装包
apache-tomcat-9.0.16.tar.gz  
jdk-8u201-linux-x64.rpm

rpm -ivh jdk-8u201-linux-x64.rpm  

在这里插入图片描述

2.2 设置JDK环境变量

#查看全局配置文件
vim /etc/profile

在这里插入图片描述

vi /etc/profile.d/java.sh


export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64   
#java家目录
export JRE_HOME=$JAVA_HOME/jre
#jre家目录
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
#指向java工具包和环境包
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#java环境变量

在这里插入图片描述

source /etc/profile.d/java.sh
#调用Java脚本

java -version
#查看当前JDK版本

在这里插入图片描述

2.3 部署Tomcat服务

cd /opt
tar xf apache-tomcat-9.0.16.tar.gz

#解压tomcat源码包

在这里插入图片描述

cp -r apache-tomcat-9.0.16/ /usr/local/tomcat1
cp -r apache-tomcat-9.0.16/ /usr/local/tomcat2
cp -r apache-tomcat-9.0.16/ /usr/local/tomcat3
#将tomcat复制到usr/local ,并且改名,方便管理

在这里插入图片描述

#更改tomcat1、2、3 server.xhl文件
vi /usr/local/tomcat1/conf/server.xml

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

重复操作

#修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
#tomcat1
vi /usr/local/tomcat1/bin/startup.sh 

#添加
export CATALINA_BASE=/usr/local/tomcat1
export CATALINA_HOME=/usr/local/tomcat1
export TOMCAT_HOME=/usr/local/tomcat1

在这里插入图片描述

vi /usr/local/tomcat1/bin/shutdown.sh

#添加内容
export CATALINA_BASE=/usr/local/tomcat1
export CATALINA_HOME=/usr/local/tomcat1
export TOMCAT_HOME=/usr/local/tomcat1

在这里插入图片描述
重复上述操作

2.4 路径启动

#绝对路径启动
 /usr/local/tomcat1/bin/startup.sh
 /usr/local/tomcat2/bin/startup.sh
 /usr/local/tomcat3/bin/startup.sh
ss -natp |grep java
#查看进程

在这里插入图片描述

#网页启动
192.168.67.102:8081
192.168.67.102:8082
192.168.67.102:8083

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. Nginx联动Tomcat实现动静分离、负载均衡

3.1 基本原理

服务端接收来自客户端的请求中,包含静态资源和动态资源,静态资源由Nginx进行处理,动态资源Nginx转发至后端由tomcat负责处理。

3.2 前置准备

在这里插入图片描述

#tomcat多实例
192.168.67.102:8081
192.168.67.102:8082
192.168.67.102:8083

#四层实现负载均衡
nginx1 192.168.67.100 #用性能最好的一台

#七层实现动静分离
nginx2 192.168.67.101
nginx3 192.168.67.103

#客户机
192.168.67.104

3.3 配置nginx1实现四层代理,负载均衡

systemctl stop firewalld
setenforce 0
#关闭防火墙和selinux策略
#编译安装nginx并加入systemd服务
#依赖
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#创建管理用户
useradd -M -s /sbin/nologin nginx
#编译安装ngnix
cd /opt

#解压缩软件包
tar -zxf nginx-1.18.0.tar.gz

cd nginx-1.18.0
#加入源码包

#搭建编译环境
./configure \
--prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \									#启用文件修改支持
--with-http_stub_status_module \					#启用状态统计
--with-http_gzip_static_module \					#启用 gzip静态压缩
--with-http_flv_module \							#启用 flv模块,提供对 flv 视频的伪流支持
--with-http_ssl_module								#启用 SSL模块,提供SSL加密功能
--with-stream										#启用 stream模块,提供4层调度

make -j2 && make install
#编译并安装 

#软连接 添加到环境变量中
ln -s /apps/nginx/sbin/nginx /usr/local/
#添加到系统服务中
vim /lib/systemd/system/nginx.service

[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

systemctl daemon_reload
chmod 754 /lib/systemd/system/nginx.service

#启动nginx
systemctl start nginx
systemctl status nginx
#查看运行状态 

在这里插入图片描述

#配置负载均衡
vim /apps/nginx/conf/nginx.conf
...
#写在http部分上面
stream {
	
    upstream myserver {
		server 192.168.67.101:80 weight=1;
		server 192.168.67.103:80 weight=1;
    }
    server {
        listen 80;
        proxy_pass myserver;
    }
}

nginx -t
nginx -s reload 
#重新加载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ss -natp |grep nginx
#查看是否正常运行

在这里插入图片描述

3.4 配置nginx2\3实现七层代理,动静分离

nginx2和3配置基本相同,主页文件相同名字,不同内容的文本和静态网页,用于测试负载均衡

#前置准备
systemctl disable firewalld --now
setenforce 0

#yum安装nginx
yum -y install epel-release.noarch -y
yum -y install nginx 

#如果开启了httpd服务关了,不然会导致nginx无法开启

#开启服务
systemctl start nginx 
vim /etc/nginx/nginx.conf
#编辑主配置文件

在这里插入图片描述

在这里插入图片描述

#添加并编辑子配置文件
touch conf.d/scj.conf
vim conf.d/scj.conf

在这里插入图片描述

nginx -t
nginx -s reload
#重新加载
#静态页面
cd /usr/share/nginx/html
mkdir scj
echo "This is nginx2 ,from scj" > scj/index.html

在这里插入图片描述
在这里插入图片描述

3.5 Tomcat配置,作为动态资源服务器

#前置准备
systemctl stop firerwalld
setenforce 0

#当前已经部署了tomcat多实例
#详情见上
#准备动态资源
mkdir /usr/local/tomcat1/webapps/test
mkdir /usr/local/tomcat2/webapps/test
mkdir /usr/local/tomcat3/webapps/test
#创建动态资源根目录
#创建动态页面

#tomcat1
vi /usr/local/tomcat1/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,http://www.test1.com");%>
</body>
</html>

#创建动态页面

#tomcat2
vi /usr/local/tomcat2/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,http://www.test1.com");%>
</body>
</html>

#tomcat3
vi /usr/local/tomcat3/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test3 page</title>   
</head>
<body>
<% out.println("动态页面 3,http://www.test1.com");%>
</body>
</html>
#重启服务

/usr/local/tomcat1/bin/shutdown.sh 
/usr/local/tomcat1/bin/startup.sh 

/usr/local/tomcat2/bin/shutdown.sh 
/usr/local/tomcat2/bin/startup.sh 

/usr/local/tomcat3/bin/shutdown.sh 
/usr/local/tomcat3/bin/startup.sh 

ss -natp |grep java
#查看运行情况

在这里插入图片描述

3.6 测试

#访问静态资源
浏览器访问 http://192.168.67.100/scj/index.html
多次刷新

在这里插入图片描述
在这里插入图片描述

#访问动态资源
http://192.168.67.100/test/index.jsp
多次刷新

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx反向代理tomcat的配置可以按照以下步骤进行: 1. 首先,在nginx的官方网站下载并安装nginx。可以使用如下命令下载nginx压缩包:wget http://nginx.org/download/nginx-1.0.9.tar.gz 2. 配置nginx反向代理。在nginx的配置文件中,使用upstream指令来定义多个代理服务器。比如,可以按照下面的配置来定义两个tomcat服务器: upstream tomcat_server1 { server 192.168.0.106:8080; } upstream tomcat_server2 { server 192.168.0.106:8081; } 3. 接下来,配置虚拟主机。在nginx的配置文件中,通过server指令来配置虚拟主机。每个虚拟主机都对应一个域名和端口号。比如,如下配置示例中,我们配置了两个虚拟主机,分别监听80端口和81端口,并将请求转发给对应的tomcat服务器: server { listen 80; server_name www.test1.com; location / { proxy_pass http://tomcat_server1; index index.jsp index.html index.htm; } } server { listen 81; server_name www.test2.com; location / { proxy_pass http://tomcat_server2; index index.jsp index.html index.htm; } } 4. 最后,启动nginx服务器并进行测试。使用命令启动nginx服务器,并分别访问www.test1.com和www.test2.com,测试反向代理是否正常工作。 通过以上配置,nginx将会根据请求的域名和端口号,将请求转发给对应的tomcat服务器,从而实现反向代理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Nginx+Tomcat 实现反向代理](https://blog.csdn.net/sinat_41075146/article/details/125448334)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值