在端口80上运行页面的现有服务器上运行Node.JS应用程序

我在www.example.com上有一台服务器,运行由Apache提供的PHP制作的网页,该页面正在监听端口80。

现在我想在域www.example2.com上为我的Node.JS服务。 这两个页面应该在同一台服务器上,Node.JS应用程序应该在端口3000上运行。 我该如何实现?

从其他答案和博客文章(如这个: http : //garr.me/blog/running-node-js-and-apache-together-using-mod_proxy/ )我已经了解到,我可以创build一个ReverseProxyredirectwww .example.com /应用程序到我的应用程序,但是这不是预期的行为。 我想要的是这个新的域www.example2.com去端口3000服务器的IP地址。

侧面的问题:这个问题可能听起来很愚蠢,但是,我不能把整个域redirect到端口3000的服务器的IP地址从GoDaddy / Route53的域名configuration?

谢谢。

我解决了它。 原来的问题页面提供了一个很好的build议,但它似乎并不完整。 要实现此configuration,请执行以下操作:

– 在你的Apache文件夹(通常在apache2 / conf)上放置文件httpd.conf。

– 添加以下几行到最后:

LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so <VirtualHost *:80> ProxyPreserveHost On ProxyRequests Off ServerName example2.com ServerAlias www.example2.com ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ </VirtualHost> 

– 为您的实际域名更改占位符“example2”(example2是原始问题的域名)

– 重新启动Apache。

请注意,您可能需要通过将LoadModule行移动到实际加载模块的位置来稍微整理一下代码。

现在我想在域www.example2.com上为我的Node.JS服务。 这两个页面应该在同一台服务器上,Node.JS应用程序应该在端口3000上运行。我该如何实现?

有两个步骤。

  1. 您需要在侦听IP:3000的apache中创build一个虚拟主机,并响应example2.com的请求
  2. 您需要运行mod_proxy来对端口80上的example2.com发出请求,并将它们推送到虚拟主机正在侦听的IP:3000。

我不能在GoDaddy / Route53的域名configuration中将整个域redirect到端口3000的服务器IP地址?

不,您不熟悉各种networking层,包括DNS,TCP,IP以及其中的所有内容。 可能我build议读一本小书没有题目。 两次。 它会把你放在好的位置上。 =)