【发布时间】: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
标签: javascript node.js express proxy virtualhost