问:如何使用基本身份验证将Apache 2.4配置为Portainer的反向代理?
Portainer是用于管理Docker容器的UI。
Portainer文档中有一个示例nginx configuration,但是不幸的是,对于Apache而言,没有一个示例。
最佳答案
答:您需要使用--no-auth标志启动Portainer并使用mod_proxy_wstunnel。
用--no-auth启动Portainer。
我使用以下Docker Compose文件:
portainer:
image: portainer/portainer
container_name: "portainer-app"
privileged: true
command: --no-auth
ports:
- 9000:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /srv/docker/portainer/data:/data
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
environment:
TZ: "Europe/Berlin"
为您的Apache域配置基本身份验证。
启用mod_proxy_wstunnel。
将以下内容添加到配置中:
<Location /portainer/>
ProxyPass http://localhost:9000/
ProxyPassReverse http://localhost:9000/
RequestHeader set Connection ""
</Location>
<Location /portainer/api/websocket/>
RequestHeader set Upgrade $http_upgrade;
RequestHeader set Connection "upgrade"
ProxyPass ws://localhost:9000/api/websocket/
</Location>