Linux Ubuntu 14.04 在 1 台机器 1 个 ip 上的 2 个不同的 Web 服务器上运行 2 个网站

标签 linux node.js apache ip hosting

我很好奇。假设我想要在一台机器上设置两个指向两个 Web 服务器的域名。我想要一个域指向一个 apache 网络服务器,一个指向一个 Node 网络服务器。作为服务器新手,我的直觉是我不能使用虚拟主机,因为只有一个站点在使用 apache,我应该在单独的 VM 上运行每个,但我不想这样做,所以我想如果它全部在一台机器上,我应该只在不同的端口上运行每个,然后在每个域中指定它。那是最好的方法吗?对不起,我对此太陌生了

感谢大家!!

最佳答案

限制

HTTP 在端口 80 上使用 TCP/IP 协议(protocol)。如果您从其他端口提供内容 - URL 将类似于:http://mysite:123/ (其中 123 是端口)。

只能为 IP:protocol:port 组合打开一个套接字。由于我们只有一个 IP,因此协议(protocol)和端口不灵活 - 因此只有一个应用程序可以提供数据。拥有两个域不会解除此限制。

解决方案

您需要一个所谓的 HTTP 代理,这将是主要的入口点。并让此代理决定哪个应用程序应处理该请求。

由于您按域进行区分,因此可以将代理配置为根据请求的域进行响应。

有大量的应用程序为此服务,主要参与者是nginxHTTPD Apache .

既然你已经有了 Apache,你可能会继续使用它,你需要研究的主题:

  1. 正在设置 virtual hosts (按域区分)
  2. 正在配置 proxy (将虚拟主机链接到您的 Node 网站)。

Node 也可以用作代理,但是为生产配置一个代理是有挑战性的。

关于Linux Ubuntu 14.04 在 1 台机器 1 个 ip 上的 2 个不同的 Web 服务器上运行 2 个网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341555/

相关文章:

linux - AWS : How to duplicate UDP traffic from PRD to TEST environment?

linux - 截取特定应用程序的屏幕截图

php - 仅允许从 1 个 IP 地址访问所有文件并将所有其他文件重定向到其他文件

AngularJS SSL .htaccess 问题

c++ - 在 Linux 上使用 Qt 实现 C++ HTTPS SOAP 客户端

linux - 在Linux中,如何连接两个vNIC?

node.js - 将 NestJs 部署到 ElasticBeanstalk

node.js - Socket.IO 套接字 ID 是敏感/私有(private)数据吗?

javascript - VueJS - 通过注销组件清除后端服务器设置的 cookie

php - 在 MacOSX 10.10 (yosemite) 上编译 php5.5.18 时出错