Node.js w / Apache,相同的IP,不同的端口。 虚拟主机configuration打破正常的Apache(网站在80)访问?

我们的客户不想在他们的防火墙上打开端口3000,我们的应用程序使用该端口的Node.js。

一直试图find一种方法来redirect端口3000(node.js)的stream量,所以我们可以把我们的网站只使用域名。 我们也在同一个盒子上运行Apache。 AWS上的Ubuntu。

我现在主要工作,但是缺less一小部分的难题:它现在与一个端口3000redirect到节点,但我认为在启用这个,我不知道如何与正常的stream量工作到Apache根。 (80和443不再使用apache。)使用3000,节点在http和https中都按预期响应。)

在这个改变之前,我们将以这种方式testing节点:

app.company.net:3000/api/test(https)

它会返回:

“{”status“:401,”message“:”无效的令牌或密钥“}”

目前的问题:

  • app.company.net/ < – 不工作,调出“{”code“:”ResourceNotFound“,”message“:”/不存在“}应该调出门户。 (HTTP)
  • app.company.net/ < – 不工作,调出“{”code“:”ResourceNotFound“,”message“:”/不存在“}应该调出门户。 (HTTPS)
  • app.company.net/api/test < – WORKS,调出预期的“{”status“:401,”message“:”无效的令牌或密钥“}”。 (HTTP)
  • app.company.net/api/test < – WORKS,调出预期的“{”status“:401,”message“:”无效的令牌或密钥“}”。 (HTTPS)

我已经在apache中安装并configuration了mod_proxy,并且我的httpd.conf文件中的redirect如下所示:

<VirtualHost *:80> ServerName app.company.net ProxyPreserveHost on ProxyPass / http://localhost:3000/ </VirtualHost> 

如果我注释掉上面的话,会发生相反的情况。 Apache服务于所有,但我不能没有附加:3000到该url的节点响应。

还尝试过注释掉上述所有内容,并且使用了mod_rewrite,但那是它自己的兔子洞。 几个小时后,没有运气。 我不断收到/ api / test在服务器上不存在的错误。 这应该可能是另一张票,但。

我究竟做错了什么?

谢谢!

-P