我拥有一个带有单个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
,如果这是它需要的
答案 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变得更低级。现在它并不重要。