我很好奇。假设我想要在一台机器上设置两个指向两个 Web 服务器的域名。我想要一个域指向一个 apache 网络服务器,一个指向一个 Node 网络服务器。作为服务器新手,我的直觉是我不能使用虚拟主机,因为只有一个站点在使用 apache,我应该在单独的 VM 上运行每个,但我不想这样做,所以我想如果它全部在一台机器上,我应该只在不同的端口上运行每个,然后在每个域中指定它。那是最好的方法吗?对不起,我对此太陌生了
感谢大家!!
最佳答案
限制
HTTP 在端口 80 上使用 TCP/IP 协议(protocol)。如果您从其他端口提供内容 - URL 将类似于:http://mysite:123/ (其中 123 是端口)。
只能为 IP:protocol:port 组合打开一个套接字。由于我们只有一个 IP,因此协议(protocol)和端口不灵活 - 因此只有一个应用程序可以提供数据。拥有两个域不会解除此限制。
解决方案
您需要一个所谓的 HTTP 代理,这将是主要的入口点。并让此代理决定哪个应用程序应处理该请求。
由于您按域进行区分,因此可以将代理配置为根据请求的域进行响应。
有大量的应用程序为此服务,主要参与者是nginx和 HTTPD Apache .
既然你已经有了 Apache,你可能会继续使用它,你需要研究的主题:
- 正在设置 virtual hosts (按域区分)
- 正在配置 proxy (将虚拟主机链接到您的 Node 网站)。
Node 也可以用作代理,但是为生产配置一个代理是有挑战性的。
关于Linux Ubuntu 14.04 在 1 台机器 1 个 ip 上的 2 个不同的 Web 服务器上运行 2 个网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341555/