You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

docker-compose中HTTP_USER与HTTP_PASSWORD配置无效,请求排查解决

问题分析与解决方案

问题根源

你遇到的登录失败问题主要有两个核心原因:

  • 容器未暴露HTTP服务端口:dorowu/ubuntu-desktop-lxde-vnc镜像的noVNC HTTP服务默认运行在80端口,你当前仅暴露了5900(原生VNC端口),导致nginx反向代理无法正确路由到提供HTTP认证的服务,甚至直接访问localhost时都没命中容器的HTTP服务。
  • 部分镜像版本对明文密码支持有限:部分镜像分支要求使用哈希格式的密码才能触发HTTP认证生效,明文密码无法被正确识别。

修复步骤

1. 暴露容器的80端口

修改docker-compose.yml的expose字段,添加80端口,让nginx-proxy能识别并代理容器的HTTP服务:

services:
  ubuntuvnc-withpass:
    container_name: sub.domain.com
    image: dorowu/ubuntu-desktop-lxde-vnc
    expose:
      - "5900"
      - "80"  # 添加这一行,暴露HTTP服务端口
    environment:
      VIRTUAL_HOST: sub.domain.com
      LETSENCRYPT_HOST: sub.domain.com
      VNC_PASSWORD: pass
      RESOLUTION: 800x600
      HTTP_USER: admin
      HTTP_PASSWORD: pass
    networks:
     - proxy

2. (可选)使用哈希格式密码

如果添加端口后仍无法登录,尝试用哈希密码替代明文密码:

  • 生成密码哈希(需安装apache2-utils工具,或用在线工具生成):
    htpasswd -nb admin pass
    
  • 将生成的哈希字符串(格式如admin:$apr1$xxxxxx$xxxxxx)替换原有环境变量:
    environment:
      # 移除原有HTTP_USER和HTTP_PASSWORD,添加以下行
      HTTP_PASSWORD_HASH: "admin:$apr1$xxxxxx$xxxxxx"
    

3. 重启服务

执行以下命令重启容器,让配置生效:

docker-compose down && docker-compose up -d

内容的提问来源于stack exchange,提问作者Anastasiya Mykolenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 23:01:34