在ubuntu上,有什么最简单的方法可以将请求引导到不同端口的本地主机上?

问题描述 投票:-1回答:1

我在ubuntu虚拟机上建立了一个开发环境,我有2个应用程序,通常部署在不同端口的应用服务器上。我有2个应用程序,通常部署在不同端口的应用程序服务器上。

  • 应用A
    • a.myapp.com:7001
    • 网络应用
    • 就像App B上的服务的服务器对服务器的代理一样
    • 从配置文件中获取App B的主机和端口。
  • 应用B:b.myapp.com:7002。
    • 休息服务

在虚拟映像上,我想只部署1个应用服务器和2个战争,以避免2个应用服务器和2个独立端口的内存开销。长期来看,这将真正像10个应用程序,所以需要把它们都放在1个服务器上。

我目前的策略是使用 etchosts 将任何指向 a.myapp.com 的请求引导回 localhost,对于应用 A 而言,它的效果很好。我想对 b.myapp.com:7002 做类似的事情,但端口不同,而且据我所知,我无法设置 hosts 文件来改变端口。

在ubuntu中,有什么最简单的方法可以将b.myapp.com:7002的网络请求转发到运行在127.0.0.1:7001的单一应用服务器上。我是否要使用nginx等网络代理,是否要使用端口转发等?我是个linux菜鸟,所以请温柔点。我的主要驱动力是保持资源的最小化。nginx可能会占用更多的资源,但可能会在其他事情上长期派上用场,所以对各种选择持开放态度。

ubuntu networking dns portforwarding
1个回答
0
投票

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

1). 在etchost文件中添加两个域名

  • 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的反向代理。
  • 以后我可以让同一台服务器将70037004端口的请求重定向到7001端口。
© www.soinside.com 2019 - 2024. All rights reserved.