实战指南:使用 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 端口的字样,以确认该端口的服务正常运行。
使用 nginx 反向代理实现多端口跳转多页面,nginx知识学习,nginx,运维,方向代理,多端口跳转

2.2 启动8081端口的tomcat服务

随后,为了启动第二个 Tomcat 服务,对其配置文件进行了修改。通过修改 server.xml 文件中的端口配置,将原本的 8005、8080、8009 分别更改为 8015、8081、8019,确保端口号唯一性并避免冲突。启动 Tomcat 后,确认在 8081 端口上成功启动了第二个服务,并在其 webapps 目录下创建了名为 “vod” 的文件夹,并添加了名为 “a.html” 的测试文件。文件内容反映了连接到 8081 端口的字样,用以验证该端口服务的正常运行。
使用 nginx 反向代理实现多端口跳转多页面,nginx知识学习,nginx,运维,方向代理,多端口跳转
这样的设置允许我们在不同端口上分别启动并验证了两个独立的 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 服务。

使用 nginx 反向代理实现多端口跳转多页面,nginx知识学习,nginx,运维,方向代理,多端口跳转

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

使用 nginx 反向代理实现多端口跳转多页面,nginx知识学习,nginx,运维,方向代理,多端口跳转

结语

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

到了这里,关于实战指南:使用 Nginx 反向代理实现多端口跳转的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 用Nginx做端口转发(反向代理)

    本文中,我们介绍Nginx如何做端口转发,还有各种转发规则 首先介绍最常用的,将域名转发到本地另一个端口上 这样访问 http://tomcat.shaochenfeng.com 时就会转发到本地的 8080 端口

    2024年02月14日
    浏览(12)
  • nginx 反向代理服务器端口转发问题

    nginx 反向代理服务器端口转发问题

    先介绍一下项目背景,公司里有个外包Saas项目,这里假设为A项目( 前后端不分离 );项目架构大概如下;但是项目部署到生产环境时,那台服务器80端口被其他应用占用了(我尼玛...),nginx监听端口那边只能监听其他端口了,比如监听:18000,通过nginx反向代理将18000端口转发到

    2024年02月04日
    浏览(12)
  • Nginx常用配置-反向代理-https重定向-端口转发

    二级目录映射 目前前后端项目分离场景多了以后,一般是前端一个端口,后端一个端口。 如前端是https://example.com/index.html,调用的接口是https://example.com:4433 如此部署对于一些小项目未免有些麻烦,当然你在公网环境下也可以选择使用子域名、其他域名进行跨域访问。 这里说

    2024年02月16日
    浏览(11)
  • nginx反向代理webSocket程序并配置SSH端口

    nginx反向代理webSocket程序并配置SSH端口

    需求背景:当前有个网页版的XShell项目(webSocket程序同理),需要使用到nginx做反向代理 XShell项目是Java开发的,端口为: 9017 ,与nginx部署在同一台Linux中 在sbin文件夹中,执行命令: 查看是否出现 configure arguments: --with-stream 存在上述参数,证明支持SSH,如: 不存在上述参数,

    2024年02月12日
    浏览(16)
  • Nginx分端口部署两个或多个项目(包含反向代理配置)

    Nginx分端口部署两个或多个项目(包含反向代理配置)

    Author:think 一、部署Nginx 若读者没有部署安装Nginx,则可以参考下面这篇文章进行安装。 CentOS 7非编译安装Nginx_think_mzs的博客-CSDN博客 二、分析Nginx配置文件 通过上面的方法安装的Nginx,其配置文件在 /etc/nginx/ 目录下,如下图所示。 其中 nginx.conf 为Nginx的主要配置文件,在 co

    2024年02月05日
    浏览(12)
  • linux下nginx配置https和反向代理本地端口

    1 修改配置文件/etc/nginx/sites-enabled/default  在配置文件中增加一个server用来做https端口监听, ssl_certificate和ssl_certificate_key修改为自己申请的https认证文件 location  /pose {              proxy_pass http://127.0.0.1:10084;   } 此处将以/pose开始的api转发到本机127.0.0.1:10084,需要注意的

    2024年02月12日
    浏览(10)
  • 在Windows中使用Nginx实现反向代理

    在Windows中使用Nginx实现反向代理

    Nginx介绍 Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。Nginx可以作为静态页面的web服务器,同

    2024年02月08日
    浏览(13)
  • 在docker中使用Nginx并实现反向代理

    在docker中使用Nginx并实现反向代理

    使用Nginx反向代理,可以通过不同的子域名访问到不同服务器的端口上 下面来介绍怎么在Docker容器中使用Nginx反向代理。 1.安装Docker 确保你的系统上已经安装了Docker。具体可以Docker官方网站上找到适合你系统的安装指南。 2.创建一个新的Docker容器 首先,创建一个新的Docker容器

    2024年02月16日
    浏览(12)
  • Nacos基础(3)——nacos+nginx & 集群的配置和启动 & 端口开放 & nginx反向代理nacos集群

    Nacos基础(3)——nacos+nginx & 集群的配置和启动 & 端口开放 & nginx反向代理nacos集群

    1.nacos集群启动的方式,修改cluster.conf集群的配置,多个nacos; 2.修改启动配置文件application.properties,多个nacos分别以集群方式启动; 3.nginx反向代理多个nacos,配置代理tcp,以及http; 启动8848, 8858, 8868三个服务器 vim cluster.conf配置文件,配置多个nacos服务端口 同步两个的配置

    2024年02月02日
    浏览(12)
  • 编译安装Nginx和使用五种算法实现Nginx反向代理负载均衡

    编译安装Nginx和使用五种算法实现Nginx反向代理负载均衡

    目录 Ubuntu中安装Nginx 概念介绍 负载均衡 几种负载均衡算法 反向代理 环境规划 配置反向代理 加权负载均衡(Weighted Load Balancing) 轮询(Round Robin) IP 哈希(IP Hash) 最少连接(Least Connections) URL 哈希(URL Hash) 想要安装nginx,首先我们需要有一台Ubuntu的虚拟机,然后最好在

    2024年01月25日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包