如何在群晖用nginx-proxy-manager来实现对Dozzle(等)反向代理后用账号密码访问

群晖相关2年前更新 billconan
296 0

Dozzle可以监控群晖容器的日志,有时候免不了需要外网访问快速查看容器日志,所以就安装了dozzle。但是发现反向代理https后没有账号密码就能直接查看,所以就设计了一个简单web权限管理。

我直接使用的docker compose配置yaml构建生成。现在有容器的基本我都这样生成,因为配置参数一旦设置好,就算删除了容器,项目在就能很快构建完成。

yaml配置如下:

version: “3”
services:
  dozzle:
    container_name: dozzle
    image: amir20/dozzle:latest
    volumes:
      – /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      – 9000:8080
这样构建后就生成了dozzle容器日志查看,一目了然。
如何在群晖用nginx-proxy-manager来实现对Dozzle(等)反向代理后用账号密码访问
但是这样只是本地ip+端口访问能看,下面就是npm中反向代理后账号密码访问的方法:
首先你去找能生成.htpasswd文件的网址或者工具,将生成的哈希密码粘贴到桌面的文本文档中并将后缀名改成.htpasswd。
如何在群晖用nginx-proxy-manager来实现对Dozzle(等)反向代理后用账号密码访问
然后将改文件拷贝到npm能访问的文件夹中,我是放在其他文件夹然后给npm挂载这个文件夹的形式,如果图方便可以直接放入npm,因为一般都会挂载npm的文件夹。如果npm没有权限访问.htpasswd反向代理后会报错443。到这里基本未完成一大半了。然后就是在npm中反向代理配置如下:
如何在群晖用nginx-proxy-manager来实现对Dozzle(等)反向代理后用账号密码访问如何在群晖用nginx-proxy-manager来实现对Dozzle(等)反向代理后用账号密码访问
在npm的自定义模块也就是advanced的Custom Nginx Configuration中必须正确配置auth_basic_user_file的后面文件位置,就是.htpasswd存放的位置。
location / {
auth_basic “Restricted Content”;
auth_basic_user_file 你存放.htpasswd的位置(注意挂载后的目录名称);proxy_pass http://172.17.0.1:9000;
proxy_set_header Host $http_host;
proxy_redirect http:// https://;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_http_version 1.1;
}

如何在群晖用nginx-proxy-manager来实现对Dozzle(等)反向代理后用账号密码访问
到这里应该就没问题了。也可以关闭缓存这样每次登录都需要输入,或者加入会话超时的方法。以此类推其他容器也可以。
© 版权声明

相关文章