我有一个运行在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。至少表明路由已被识别。有什么想法可以进行调试过程吗?
任何想法如何正确设置
答案 0 :(得分:0)
上周我终于设法解决了我的问题。我的反向代理配置中缺少以下代码行:
SSLProxyEngine on
感谢所有帮助。