用于节点服务器的Apache反向代理

时间:2019-09-30 20:05:27

标签: node.js apache reverse-proxy

我有一个运行在https://example.com上的基于apache的服务器,其中有一个运行在端口3000上的节点应用程序。请求可以成功发送到https://example.com:3000,但是,因为我计划运行多个应用程序,我想为不同的应用程序设置一些反向代理。为了做到这一点,我在apache conf文件中添加了以下几行:

<VirtualHost *:80>
    ServerAdmin foo@example.com
    ServerName example.com

    ProxyRequests off

    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>

    <Location /myapp1>
            ProxyPass http://localhost:3000
            ProxyPassReverse http://localhost:3000
    </Location>

    <Location /myapp2>
            ProxyPass http://localhost:3010
            ProxyPassReverse http://localhost:3010
    </Location>

</VirtualHost>

此方法似乎无效,因为对https://example.com/myapp1的请求未返回任何内容。

更新

经过一些调试后,我发现.conf文件实际上包含在触发错误的<VirtualHost>标签内(嵌套<VirtualHost>标签)。现在,我简单地拥有以下内容:

ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Proxy *>
   Require all granted
</Proxy>

<Location /myapp1>
   ProxyPass http://127.0.0.1:3000
   ProxyPassReverse http://127.0.0.1:3000
</Location>
<Location /myapp2>
   ProxyPass http://127.0.0.1:3010
   ProxyPassReverse http://127.0.0.1:3010
</Location>

现在,当我按下https://example.com/myapp1时,我找不到消息-500 Internal Server Error。至少表明路由已被识别。有什么想法可以进行调试过程吗?

任何想法如何正确设置

1 个答案:

答案 0 :(得分:0)

上周我终于设法解决了我的问题。我的反向代理配置中缺少以下代码行:

SSLProxyEngine on

感谢所有帮助。