Portainer 的 Apache ReverseProxy 设置

Portainer 的 Apache ReverseProxy 设置

我目前在单个节点上运行了几个 docker 容器,其中两个是 Apache web 服务器(我已将其配置为反向代理)和 Portainer(允许我通过 GUI 管理我的容器)。

我曾尝试关注此主题:https://github.com/portainer/portainer/issues/488但无法将流量从 Apache 转发到 Portainer。

这是我的 httpd.conf 文件:

<Location /portainer/>
AuthBasicProvider ldap
AuthLDAPURL someldap
AuthType Basic
AuthName SomeAuthName
require valid-user
</Location>

ProxyPass /portainer/api/websocket/ ws://172.18.0.8:9000/api/websocket/

</VirtualHost>

有任何想法吗?

谢谢你!

答案1

我通常不建议在 Location 内添加 proxypass 指令,但由于您已经有一个影响相同 URI 的 Location,Location 可能会覆盖 ProxyPass,因为一个是在虚拟主机上下文中定义的,而 Location 本身是虚拟主机的子上下文,因此它会覆盖虚拟主机。因此,请先尝试定义 ProxyPass 指令,或者尝试在 Location 内定义 ProxyPass,如下所示:

<Location /portainer/>
    AuthBasicProvider ldap
    AuthLDAPURL someldap
    AuthType Basic
    AuthName SomeAuthName
    require valid-user
</Location>

<Location /portainer/api/websocket/> 
    ProxyPass ws://172.18.0.8:9000/api/websocket/
</Location>

定义位置的正确顺序是首先是全局路径,然后再是特定路径(使用 proxypass 则完全相反),因此如果您以这种方式定义它,请确保一个路径不会与另一个路径重叠,或者像我之前提到的那样,可能在位置指令上方定义 proxypass 指令。

请记住您在合并配置时可能遇到问题。

相关内容