回答

3

答:你需要用flag --no-auth啓動Portainer並使用mod_proxy_wstunnel。

開始Portainer與--no-auth。 我用下面的碼頭工人撰寫文件:

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> 
+0

這些設置大多是爲我工作,但不幸的是,我無法在Portainer使用控制檯功能。當試圖使用控制檯時,我的apache日誌吐出以下錯誤: AH01144:沒有協議處理程序對URL/portainer/api/websocket/exec有效。如果您使用的是mod_proxy的DSO版本,請確保代理子模塊包含在使用LoadModule的配置中。 任何想法? – Bryce