一文读懂Nginx应用之 HTTP反向代理

目录

一、概述

二、环境规划

三、Nginx服务、Tomcat服务安装部署

(一)、Nginx服务安装部署

(二)、Tomcat服务安装部署

1、Tomcat01应用服务器部署应用程序

2、Tomcat02应用服务器部署应用程序

(三)、Tomcat服务验证

四、HTTP反向代理配置

(一)、反向代理配置

(二)、启动Nginx服务

(三)、客户端访问反向代理服务

1、客户端访问Nginx服务

2、观察Nginx访问日志

五、URI访问路径匹配方式反向代理配置

(一)、反向代理配置

(二)、启动Nginx服务

(三)、客户端访问反向代理服务

1、客户端访问URI路径/tomcat01_8081

(1)、客户端访问Nginx服务

(2)、观察服务日志

2、客户端访问URI路径/tomcat02_8081

(1)、客户端访问Nginx服务

(2)、观察服务日志

六、双虚拟主机反向代理配置

(一)、反向代理配置

(二)、启动Nginx服务

(三)、客户端访问反向代理服务

1、客户端访问虚拟主机1660

(1)、客户端访问Nginx服务

(2)、观察服务日志

2、客户端访问虚拟主机1670

(1)、客户端访问Nginx服务

(2)、观察服务日志


一、概述

        Nginx反向代理是客户端访问Nginx反向代理服务器后,被其按照一定的路由匹配规则,将客户端请求转发至一个或者多个后端应用服务器,获取后端应用服务器的响应资源后再返回给客户端的代理模式。Nginx反向代理服务器本身不产生响应数据,而是作为中间商对客户端的请求进行转发并返回后端应用服务器的响应。客户端只知道Nginx反向代理服务器的IP,而不知道后端应用服务器的IP,从而对客户端隐藏了后端应用服务器的信息。

        Nginx的HTTP协议代理功能是通过ngx_http_proxy_module模块实现的,该模块会被默认编译,无须特殊配置编译参数。


二、环境规划

  • 服务器规划
主机名称 IP地址 角色 应用程序 端口
Nginx01 192.168.110.161 反向代理服务器 Nginx 80
Tomcat01 192.168.110.166 后端应用服务器 Tomcat 8081
Tomcat02 192.168.110.167 后端应用服务器 Tomcat 8081

  • 系统版本

CentOS Linux release 7.7.1908 (Core)

  • 关闭防火墙

此处为方便演示,直接关闭防火墙。生产环境可以根据实际需求开通服务器防火墙策略。

systemctl stop firewalld

systemctl stop iptables


三、Nginx服务、Tomcat服务安装部署

(一)、Nginx服务安装部署

根据文章《一文读懂Nginx应用之 CentOS安装部署Nginx服务》,在反向代理服务器(192.168.110.161)上安装Nginx服务,安装过程此处不再赘述。

(二)、Tomcat服务安装部署

根据文章《一文读懂Tomcat应用之 CentOS安装部署Tomcat服务》,分别在后端应用服务器Tomcat01(192.168.110.166)、Tomcat02(192.168.110.167)上安装Tomcat服务,安装路径为/usr/local/apache-tomcat-8081,并配置服务端口为8081。安装过程此处不再赘述。

1、Tomcat01应用服务器部署应用程序

新建index.jsp文件,用于模拟应用程序。

  • 新建index.jsp文件

[root@Tomcat01 ~]# mkdir -pv /usr/local/apache-tomcat-8081/webapps/ROOT/tomcat01_8081/

[root@Tomcat01 ~]# cat > /usr/local/apache-tomcat-8081/webapps/ROOT/tomcat01_8081/index.jsp << EOF
This is Tomcat01 Web Server !

(192.168.110.166)

I am API_8081 !
EOF

  • 重启Tomcat服务

[root@Tomcat01 ~]# /usr/local/apache-tomcat-8081/bin/shutdown.sh

[root@Tomcat01 ~]# /usr/local/apache-tomcat-8081/bin/startup.sh

  • 访问index.jsp页面

使用浏览器访问地址:http://192.168.110.166:8081/tomcat01_8081/

由上可见,访问成功。

2、Tomcat02应用服务器部署应用程序

新建index.jsp文件,用于模拟应用程序。

  • 新建index.jsp文件

[root@Tomcat02 ~]# mkdir -pv /usr/local/apache-tomcat-8081/webapps/ROOT/tomcat02_8081/

[root@Tomcat02 ~]# cat > /usr/local/apache-tomcat-8081/webapps/ROOT/tomcat02_8081/index.jsp << EOF
This is Tomcat02 Web Server !

(192.168.110.167)

I am API_8081 !
EOF

  • 重启Tomcat服务

[root@Tomcat02 ~]# /usr/local/apache-tomcat-8081/bin/shutdown.sh

[root@Tomcat02 ~]# /usr/local/apache-tomcat-8081/bin/startup.sh

  • 访问index.jsp页面

使用浏览器访问地址:http://192.168.110.167:8081/tomcat02_8081/

由上可见,访问成功。

(三)、Tomcat服务验证

验证从Nginx反向代理服务器(192.168.110.161)上,是否能够直接访问Tomcat01(192.168.110.166)、Tomcat02(192.168.110.167)的Tomcat应用服务。

  • 访问Tomcat01(192.168.110.166)

[root@Nginx01 ~]# curl http://192.168.110.166:8081/tomcat01_8081/

  • 访问Tomcat02(192.168.110.167)

[root@Nginx01 ~]# curl http://192.168.110.167:8081/tomcat02_8081/

以上说明从Nginx反向代理服务器(192.168.110.161)可以正常访问Tomcat01(192.168.110.166)与Tomcat02(192.168.110.167)的Tomcat应用服务,代理服务器与后端应用服务器之间网络、服务等均状态正常。


四、HTTP反向代理配置

        本例使用Nginx反向代理服务器(192.168.110.161),代理后端应用服务器Tomcat01(192.168.110.166)的Tomcat服务(8081端口)。

(一)、反向代理配置

在Nginx反向代理服务器(192.168.110.161)中修改Nginx服务配置文件/usr/local/nginx/conf/nginx.conf,加入反向代理配置。本例中最核心的配置是location模块中的代理指令proxy_pass。

[root@Nginx01 ~]# vim /usr/local/nginx/conf/nginx.conf

配置内容如下:

#
# Nginx Configuration
#
worker_processes  1;

pid        /usr/local/nginx/nginx.pid;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
 &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野熊佩骑

您的鼓励是我持续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值