虚拟主机中的代理形成外部IP?

Posted

技术标签:

【中文标题】虚拟主机中的代理形成外部IP?【英文标题】:A proxy in a virtual host form an external ip? 【发布时间】:2020-01-01 17:01:46 【问题描述】:

所以我在同一台服务器上有三个node 应用程序,它们都启动到不同的本地主机端口。有了这个,我正在尝试做一种路由器,为每个应用程序创建一个代理,然后将此代理放在虚拟主机中。目前我正在本地网络上对此进行测试,但将来它将在“真实”服务器上。

举个例子,我的路由器在0.0.0.0:3000,我的一个应用在0.0.0.0:3001。如果我尝试为路由器上的应用程序创建代理,这就是它的样子:

app.use('/*', proxy( target: 'http://0.0.0.0:3001', changeOrigin: true ));

当我继续 http://localhost:3000 时它可以工作。但它不在虚拟主机中,所以在这里:

app.use('/*', 
  vhost('test.*', proxy( target: 'http://0.0.0.0:3001', changeOrigin: true ))
);

它仍然有效,但仅适用于 http://test.localhost:3000

如果我尝试通过我的 IP 访问它(mydomain.com 在我的hosts 文件中映射到我的 IP,您可以在下面看到它):http://test.mydomain.com express 回复我Cannot GET /。即使在mydomain.com 上,它也可以在没有虚拟主机的情况下正常工作。

这是我的hosts 文件(我不确定共享此 IP 是否安全,所以我屏蔽了其中的一部分):

192.168.*.*:3000 mydomain.com

我使用的包:http-proxy-middleware、vhost、express。


我的最后一个问题是:我怎样才能让这个虚拟主机在 localhost 之外的另一个 IP/域上工作?

更新:

我不知道这些信息是否有用,但即使我将www.google.com 放在我的代理中与虚拟主机,它也不起作用。

【问题讨论】:

试试this 【参考方案1】:

我放弃了用node 做这件事的想法,这会造成太多问题。 我最终得到了一个 nginx 反向代理。经过一些研究,我似乎想要做一个反向代理,而且它很有效,非常适合。

https://fr.wikipedia.org/wiki/Proxy_inverse

【讨论】:

以上是关于虚拟主机中的代理形成外部IP?的主要内容,如果未能解决你的问题,请参考以下文章

如何在集群外部通过ip直连Pod?

需要使用虚拟主机中的 apache 代理测试从我的本地主机到外部服务器的 html 页面的登录

安装在VMware虚拟机中的Linux怎么上网,主机是用代理上网的。

如何用Virtual PC 虚拟机和主机建立网络

LinuxRe01

VRRP协议详解