如何在 Apache 后面配置 Phoenix Framework
How to configure Phoenix Framework behind Apache
我正在试用 Phoenix,出于我无法控制的原因,我需要通过 apache2 提供服务。
有一个 guide for serving Phoenix behind a proxy webserver 但它只给出了 nginx 的示例配置(如果可以的话我会使用它)。
所以我查看了 mod_proxy 的文档并将这两行添加到我的 VirtualHost:
<VirtualHost *:443>
...
LoadModule proxy_module modules/mod_proxy.so
ProxyPass /back http://www.example.com:4000 timeout=10
...
</VirtualHost>
我有默认的 Phoenix 应用程序 运行 在端口 4000 上处于开发模式。我尝试转到 https://example.com/back 结果是
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
我检查了我在 /var/log/apache2/error.log 的日志,没有与 GET /back 对应的错误消息,尽管 access.log 中有相应的条目。我提供的所有其他服务仍然运行良好。我在这里不知所措,有什么指示吗?
问题是双重的。
首先,需要启用代理子模块。
sudo a2enmod proxy_http && sudo service apache2 restart
导致我进行此修复的原因是在 apache2.conf 中启用了更高的日志级别:
LogLevel debug proxy:trace4
相关错误是 AH01144 (list of apache2 errors)。
其次,我需要一个反向代理:
<VirtualHost *:443>
...
ProxyPass /back http://www.example.com:4000 timeout=10
ProxyPassReverse /back http://www.example.com:4000 timeout=10
...
</VirtualHost>
我正在试用 Phoenix,出于我无法控制的原因,我需要通过 apache2 提供服务。
有一个 guide for serving Phoenix behind a proxy webserver 但它只给出了 nginx 的示例配置(如果可以的话我会使用它)。
所以我查看了 mod_proxy 的文档并将这两行添加到我的 VirtualHost:
<VirtualHost *:443>
...
LoadModule proxy_module modules/mod_proxy.so
ProxyPass /back http://www.example.com:4000 timeout=10
...
</VirtualHost>
我有默认的 Phoenix 应用程序 运行 在端口 4000 上处于开发模式。我尝试转到 https://example.com/back 结果是
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
我检查了我在 /var/log/apache2/error.log 的日志,没有与 GET /back 对应的错误消息,尽管 access.log 中有相应的条目。我提供的所有其他服务仍然运行良好。我在这里不知所措,有什么指示吗?
问题是双重的。
首先,需要启用代理子模块。
sudo a2enmod proxy_http && sudo service apache2 restart
导致我进行此修复的原因是在 apache2.conf 中启用了更高的日志级别:
LogLevel debug proxy:trace4
相关错误是 AH01144 (list of apache2 errors)。
其次,我需要一个反向代理:
<VirtualHost *:443>
...
ProxyPass /back http://www.example.com:4000 timeout=10
ProxyPassReverse /back http://www.example.com:4000 timeout=10
...
</VirtualHost>