我正在尝试 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>
关于apache2 - 如何在 Apache 后面配置 Phoenix 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39566398/