【问题标题】:What is the easiest way on ubuntu to direct a request to a localhost on a different port?在 ubuntu 上将请求定向到不同端口上的 localhost 的最简单方法是什么?
【发布时间】:2020-06-16 21:28:03
【问题描述】:

我正在 ubuntu 虚拟盒映像上设置开发环境。我有 2 个应用程序,它们通常部署在具有不同端口的不同应用服务器上:

  • 应用程序 A
    • a.myapp.com:7001
    • 面向网络的应用程序
    • 就像一个服务器到服务器代理到 App B 上的服务
    • 从配置文件中获取 App B 的主机和端口
  • 应用 B:b.myapp.com:7002
    • 仅限休息服务(无法从浏览器访问)

在虚拟映像上,我只想部署具有 2 个战争的 1 个应用服务器,以避免具有 2 个独立端口的 2 个应用服务器的内存开销。从长远来看,这实际上就像 10 个应用程序,因此需要将它们全部保存在 1 个服务器上。

我目前的策略是使用 /etc/hosts 将绑定到 a.myapp.com 的任何请求引导回 localhost,并且它适用于应用程序 A。我想对 b.myapp.com 做类似的事情: 7002 但端口不同,据我所知,我无法设置主机文件来更改端口。

在 ubuntu 中,将绑定到 b.myapp.com:7002 的网络请求转发回在 127.0.0.1:7001 上运行的单个应用服务器的最简单方法是什么。我是否使用像 nginx 这样的网络代理,是否使用端口转发等?我是一个 linux 菜鸟,所以要温柔。我的主要驱动力是保持资源最少。 nginx 可能会占用更多资源,但从长远来看可能会对其他事情派上用场,因此可以选择。

【问题讨论】:

    标签: ubuntu networking dns portforwarding


    【解决方案1】:

    原来是使用 nginx 和主机文件组合的简单解决方案。

    1)。将两个域都添加到 /etc/host 文件中

    • 127.0.0.1 a.myapp.com
    • 127.0.0.1 b.myapp.com

    2)。安装 nginx 并在 nginx.config 的 http 部分下定义一台服务器(反向代理)

        server {
            listen 7002;
            #listen 7003; in future I can add N number ports for nginx to listen on
            #listen 7004; in future I can add N number ports for nginx to listen on
            location / {
                proxy_pass http://127.0.0.1:7001/;
            }
        }
    

    结果是:

    • 当我转到 a.myapp.com:7001 时,hosts 文件强制它解析为 127.0.0.1:7001
    • 当我转到 b.myapp.com:7002 时,主机文件将其解析为 127.0.0.1:7002
      • nginx 正在监听 127.0.0.1:7002 并充当 127.0.0.1:7001 的反向代理
    • 将来我可以在端口 7003/7004 上将相同的服务器重定向请求重定向到端口 7001

    【讨论】:

      猜你喜欢
      • 2017-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多