我可以从同一台服务器但是使用不同的互联网域同时提供PHP和Node应用吗?

时间:2014-04-24 10:06:33

标签: php node.js web-deployment

我拥有一个带有单个IP地址的Debian服务器,我将其用于所有个人项目。我想做的是尽可能为同一台服务器提供我的Wordpress和我的Node.js应用程序,为每个应用程序使用不同的互联网域

例如

  • www.myblog.org:80应该投放wordpress/index.php
  • my_app.com:80应该在localhost:3000
  • 处为节点实例提供服务
  • my_other_node_app.com:80应该在localhost:3001处为节点实例提供服务 等...

这件事有可能吗?我不介意停止使用apache,如果这是它需要的

3 个答案:

答案 0 :(得分:4)

只有一个软件可以侦听给定网络接口的给定端口。

例如,如果您有两个具有不同IP地址的以太网适配器,那么您可以将节点服务器配置为侦听其中一个端口上的端口80,并将Apache服务器侦听到另一个上的端口80,然后设置DNS以指向不同IP地址的不同域。

如果您只有一个IP地址,那么您必须在不同的端口上运行服务器。

您可以在端口80上运行Apache,然后将其用于proxy节点请求。

答案 1 :(得分:1)

您可以使用反向代理服务器(如nginx)在多个域上投放。

点击此处查看此问题: Nginx Different Domains on Same IP

但基本的想法是一个服务器实际上侦听端口80,它处理请求发送到内部服务的机器上的正确的应用服务器(php,节点等)(localhost:8000)。

技术上做起来并不困难,但习惯于配置像nginx这样的新软件可能会有点挑战性。绝对绝对可行!

答案 2 :(得分:1)

这绝对可以通过使用网络服务器或代理来实现。最常见的工具是Nginx,因为它既是网络服务器又是预留代理。然后,您可以让Nginx侦听端口80并将一个域指向PHP文档根目录,将另一个域直接指向将在端口8000上运行的节点网络服务器。

另一个选择是使用HAProxy和PHP的单独Web服务器。 HAProxy非常快,就像Nginx一样。如果您决定运行负载均衡器,那么可能会使代理的websockets变得更低级。现在它并不重要。