- 我 需要 将 所有 流量 从 指定 端口 转发 到 Apache 中 的 Unix 域 套接 字 : * *
在 sites-enabled/000-default.conf
中 , 我 定义 了 一 个 VirtualHost :
<VirtualHost *:8091>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / unix:/var/lib/jenkins/workspace/myproject/mysocket.sock|http://127.0.0.1/
ProxyPassReverse / unix:/var/lib/jenkins/workspace/myproject/mysocket.sock|http://127.0.0.1/
</VirtualHost>
中 的 每 一 个
在 ports.conf
中 , 我 有 :
Listen 80
Listen 8091
格式
我 同时 启用 了 proxy
和 proxy_http
mods :
krzysiek:/etc/apache2$ a2enmod proxy
Module proxy already enabled
krzysiek:/etc/apache2$ a2enmod proxy_http
Module proxy already enabled
格式
我 使用 的 是 Apache 2.4.7 , 官方 文档 指出 :
在 2.4.7 和 更 高 版本 中 , 通过 使用 在 unix :/path/lis . sock 前面 添加 的 目标 , 可以 支持 使用 Unix 域 套接 字|
- 重新 加载 Apache 时 出现 错误 : * *
krzysiek:/etc/apache2$ sudo service apache2 restart
* Restarting web server apache2 [fail]
* The apache2 configtest failed.
AH00526: Syntax error on line 64 of /etc/apache2/sites-enabled/000-default.conf:
ProxyPass URL must be absolute!
格式
我 试 着 改变 :
ProxyPass / unix:/var/(...)
格式
收件人 :
ProxyPass / unix:///var/(...)
格式
然后 Apache 重新 加载 正确 , 但 转发 * * 不 起 作用 * * , error.log 显示 :
[proxy:warn] [pid 22436] [client 10.0.4.19:47662] AH01144: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
格式
你 能 解释 一下 我 做 错 了 什么 吗 ? 或者 我 如何 正确 地 将 流量 从 端口 转发 到 Apache 上 的 unix 套接 字 ?
1条答案
按热度按时间pgpifvop1#
可能有点晚🙂了,但下面的apache配置对我很有效:
并加载了模块
proxy
和proxy_uwsgi
。重要不要将套接字放在
/tmp
中(我认为出于安全原因,systemd会阻止apache进程直接访问它)。此外,还要注意文件权限。