使用Nginx反向代理实现多端口跳转的实战分享

 更新时间:2024年02月26日 10:33:34   作者:cooldream2009  
在现代Web开发中,Nginx作为一款高性能的开源反向代理服务器,提供了强大的功能来管理网络流量和路由,本文将介绍如何利用 Nginx 的反向代理功能,以实现多端口跳转的效果,需要的朋友可以参考下

前言

在现代 Web 开发中,Nginx作为一款高性能的开源反向代理服务器,提供了强大的功能来管理网络流量和路由。本文将介绍如何利用 Nginx 的反向代理功能,将不同路径的请求转发到不同端口的 Tomcat 服务上,以实现多端口跳转的效果。

1 实现的效果

使用 Nginx 的强大反向代理功能,我们能够根据访问路径轻松地将请求分发到不同端口的服务上。设置 Nginx 监听在端口号 9001 上。
当访问 http://192.168.17.129:9001/edu/ 时,请求将直接转发到本地地址 127.0.0.1 的 8080 端口上;
而当访问 http://192.168.17.129:9001/vod/ 时,则会直接跳转到本地地址 127.0.0.1 的 8081 端口上。
这种配置方式让我们能够实现基于路径的定向请求转发,为服务架构的灵活性和性能优化提供了一种简便而有效的方式。

2 准备两个tomcat服务

准备两个 tomcat 服务,一个 8080 端口,一个 8081 端口。

2.1 启动8080端口的tomcat服务

在配置两个 Tomcat 服务时,首先启动了一个监听在 8080 端口上的 Tomcat 服务。这一步简单直接,仅需启动 Tomcat 即可。在确保启动成功后,创建了一个名为 “edu” 的目录,并在其中添加了一个名为 “a.html” 的测试文件,文件内容体现了连接到 8080 端口的字样,以确认该端口的服务正常运行。

在这里插入图片描述

2.2 启动8081端口的tomcat服务

随后,为了启动第二个 Tomcat 服务,对其配置文件进行了修改。通过修改 server.xml 文件中的端口配置,将原本的 8005、8080、8009 分别更改为 8015、8081、8019,确保端口号唯一性并避免冲突。启动 Tomcat 后,确认在 8081 端口上成功启动了第二个服务,并在其 webapps 目录下创建了名为 “vod” 的文件夹,并添加了名为 “a.html” 的测试文件。文件内容反映了连接到 8081 端口的字样,用以验证该端口服务的正常运行。

在这里插入图片描述

这样的设置允许我们在不同端口上分别启动并验证了两个独立的 Tomcat 服务。通过这种配置,我们为接下来的 Nginx 反向代理设置奠定了基础,以便根据路径来将请求定向到不同的 Tomcat 服务上。

3 Nginx 配置

在 Nginx 的配置文件 nginx.conf 中,我们新增了一个 server 块来设置反向代理规则。以下是配置内容的解释和说明。

3.1 配置内容

server {
    listen 9001;  # 监听端口 9001
    server_name 192.168.17.129;  # 服务器 IP

    location /edu/ {
        proxy_pass http://127.0.0.1:8080;  # 将 /edu/ 路径映射到 8080 端口的 Tomcat
    }

    location /vod/ {
        proxy_pass http://127.0.0.1:8081;  # 将 /vod/ 路径映射到 8081 端口的 Tomcat
    }
}

3.2 配置说明

listen: 指定 Nginx 监听的端口号为 9001,即这个配置生效于访问该端口的请求。

server_name: 指定服务器的名称或 IP 地址,该项设置为 192.168.17.129。

location: 定义了不同路径的匹配规则。

location ~ /edu/: 使用正则表达式匹配以 /edu/ 开头的路径。~ 表示开启正则匹配。

location ~ /vod/: 同样使用正则表达式匹配以 /vod/ 开头的路径。

  • /edu/: 匹配以 /edu/ 开头的路径,将请求转发至 http://127.0.0.1:8080
  • /vod/: 匹配以 /vod/ 开头的路径,将请求转发至 http://127.0.0.1:8081

3.3 location符号的含义和作用

~: 在 location 指令中表示开启正则表达式匹配。对应的路径会被视为正则表达式,以实现更灵活的路径匹配。

~*: 类似于 ~,但它表示执行大小写不敏感的正则匹配。

=: 精确匹配指定的路径。例如,location = /path 表示只匹配精确路径 /path。

^~: 表示在正则匹配前缀的情况下,如果路径与 ^~ 后面的字符串匹配,则不再进行正则匹配,而是直接使用这个规则。通常用于避免正则匹配对其他规则产生影响。

这些符号能够帮助在 Nginx 配置文件中更精细地定义不同路径的匹配规则,以实现灵活的请求转发和路由功能。

4 开放防火墙端口

确保防火墙已开放对外访问的端口号 9001、8080 和 8081:

firewall-cmd --zone=public --add-port=9001/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --reload

这些命令的执行确保了系统防火墙对外部网络的访问限制已经放开,允许外部网络通过 TCP 协议访问指定的 9001、8080 和 8081 三个端口。这对于 Nginx 服务监听在这些端口上,并进行反向代理转发请求是必要的设置。

5 测试与验证

启动 Nginx,并访问以下地址进行测试。

  • 访问 http://192.168.17.129:9001/edu/,将跳转到 8080 端口的 Tomcat 服务。

在这里插入图片描述

  • 访问 http://192.168.17.129:9001/vod/,将跳转到 8081 端口的 Tomcat 服务。

在这里插入图片描述

结语

通过本文的介绍和配置,你已经学会如何利用 Nginx 的反向代理功能,根据不同路径将请求转发至不同的 Tomcat 服务。这种方式可以实现更灵活的流量管理和负载均衡,为 Web 应用的部署和扩展提供了便利。

以上就是使用Nginx反向代理实现多端口跳转的实战分享的详细内容,更多关于Nginx反向代理多端口跳转的资料请关注脚本之家其它相关文章!

相关文章

  • Nginx服务器部署详细代码实例

    Nginx服务器部署详细代码实例

    Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了 IMAP/POP3/SMTP服务,这篇文章主要介绍了Nginx服务器部署的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-12-12
  • Nginx中使用Lua脚本配置示例

    Nginx中使用Lua脚本配置示例

    这篇文章主要介绍了Nginx中使用Lua脚本配置示例,本文以一个Lua拦截器为例讲解如何配置使用Lua脚本,需要的朋友可以参考下
    2015-06-06
  • nginx搭建图片服务器的过程详解(root和alias的区别)

    nginx搭建图片服务器的过程详解(root和alias的区别)

    这篇文章主要介绍了nginx搭建图片服务器(root和alias的区别)的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • nginx做代理转发前端请求到后端的代码示例

    nginx做代理转发前端请求到后端的代码示例

    Nginx作为反向代理服务器,可以有效处理请求并转发到后端服务器,这篇文章主要介绍了nginx做代理转发前端请求到后端的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-01-01
  • 详解Nginx如何代理UDP连接

    详解Nginx如何代理UDP连接

    这篇文章主要为大家介绍了Nginx如何代理UDP连接的实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Nginx网站服务详解

    Nginx网站服务详解

    这篇文章主要介绍了Nginx网站服务,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • 一文带你搞懂什么是Nginx服务器

    一文带你搞懂什么是Nginx服务器

    这篇文章主要介绍了一文带你搞懂什么是Nginx,Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了iMAP/POP3/SMTP服务,需要的朋友可以参考下
    2023-04-04
  • Nginx服务器中设置禁止访问文件或目录的方法

    Nginx服务器中设置禁止访问文件或目录的方法

    这篇文章主要介绍了Nginx服务器中设置禁止访问文件或目录的方法,对于协同远程管理服务器的情况来讲很有实用性,需要的朋友可以参考下
    2015-07-07
  • nginx sticky实现基于cookie负载均衡示例详解

    nginx sticky实现基于cookie负载均衡示例详解

    这篇文章主要为大家介绍了nginx sticky实现基于cookie负载均衡示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 解决nginx 503 Service Temporarily Unavailable方法示例

    解决nginx 503 Service Temporarily Unavailable方法示例

    这篇文章主要介绍了解决nginx 503 Service Temporarily Unavailable方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论