Apache 反向代理 Unix 套接字

2024-02-14

我正在尝试使用 unix 套接字在 Apache 2.4.7 中设置 ProxyPass 到 puma 服务器的 Rails 应用程序。我不断收到 500 内部错误。当我检查 apache 日志时,我收到以下消息:

没有协议处理程序对 URL / 有效。如果您使用的是 mod_proxy 的 DSO 版本,请确保使用 LoadModule 将代理子模块包含在配置中。

这是我在 apache 中的代理配置

ProxyPass / unix:///home/rails/rp/tmp/sockets/puma.sock|http://127.0.0.1/
ProxyPassReverse / unix:///home/rails/rp/tmp/sockets/puma.sock|http://127.0.0.1/

如果我像这样在常规 tcp 端口上设置代理通行证,它就可以正常工作。

ProxyPass / http://127.0.0.1:9292
ProxyPassReverse / http://127.0.0.1:9292

感谢任何帮助,如果您需要更多信息,请告诉我。


一般来说,通过 unix 套接字检查 http 服务器应用程序的反向代理有一些要点:

  • 使用以下命令检查 Apache 是否已加载所需模块(proxy 和 http_proxy)apachectl -M command
  • 确保套接字路径可访问www-data用户(默认的apache用户)
  • 使用以下命令检查在 unix 套接字上运行应用程序的正确性:
    curl --unix-socket /var/www/app/socket/path -XGET http:/someMethod
  • 检查一下ProxyPreserveHost On已经存在于您的虚拟主机文件中并正确设置套接字地址(如unix:/var/www/path/to/your/socket)并在管道正确标记路径之后(如|http://127.0.0.1/what/ever)
  • 确保两者ProxyPassReverse and ProxyPass设置正确
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache 反向代理 Unix 套接字 的相关文章

随机推荐