我的安装程序已经在我的虚拟主机中使用这两行通过 TCP 工作:
ProxyPassMatch ^/ws/.*$ ws://localhost:8000/
ProxyPass / http://localhost:8000/
现在我想使用 unix 套接字。所以我在前面加上unix:$SOCKETPATH|
并删除了端口:
ProxyPassMatch ^/ws/.*$ unix:/run/myapp.sock|ws://localhost/
ProxyPass / unix:/run/myapp.sock|http://localhost/
它适用于 HTTP,但 websocket 连接失败。我尝试了 websockets 行右侧的变体,例如:
ProxyPassMatch ^/ws/.*$ unix:/run/myapp.sock|ws:///
ProxyPassMatch ^/ws/.*$ unix:/run/myapp.sock|ws://
除了让它工作之外,我想了解为什么在管道 (|) 之后仍然需要部分?毕竟,Apache 应该只需要知道 unix 套接字路径,不是吗?ProxyPass上的Apache 文档没有解释这一点。
这些类似的问题没有帮助: