gpt4 book ai didi

Apache:代理到 URL 中命名的 unix 套接字

转载 作者:行者123 更新时间:2023-12-04 12:18:49 25 4
gpt4 key购买 nike

我正在构建一个设置,其中主机运行一堆 Docker 容器以测试不同的代码分支,并且我想访问容器中正在运行的网络服务器。

所有容器都在 host 上运行.每个容器通过主机上的 unix 套接字为 Web 应用程序提供服务,例如/var/sockets/<socket_name> .

我想要的是 host 上的 apache根据 url 代理到容器,以便当我 GET https://<host>.com/<socket_name>/my_url , apache 代理到 <socket_name>请求:GET https://<host>.com/my_url .也就是说,它识别 url 中的套接字名称,重写 url 并将其发送到该套接字。

这可能吗?我仍在阅读文档,但似乎找不到任何提示

最佳答案

基于网络上的各种文档,这个想法是包含 mod_proxymod_rewrite分两步处理,即对URL进行处理,提取socket名称,去掉那部分重写,根据新的(缩短的)URL和socket名称进行代理。

这是它的样子:

RewriteEngine On
RewriteRule /(.*)/(.*) http://%{HTTP_HOST}/$2 [P]
ProxyPass / unix:/var/sockets/$1.sock|http://%{HTTP_HOST}/
ProxyPassReverse / unix:/var/sockets/$1.sock|http://%{HTTP_HOST}/

我的提案基于 (.*)应提取感兴趣的两个参数的表达式。然后我们重写 URL,并通过 P我们表示将结果传递给代理的标志。稍后我们指定两个相同的 ProxyPassProxyPassReverse并指定 Unix 套接字路径,管道 |分隔符和主机基地址。

我希望这可以奏效,或者至少给你一些我们应该寻找什么的草图。

关于Apache:代理到 URL 中命名的 unix 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35652073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com