docker反向代理-如何在htpasswd中使用授权

时间:2020-08-23 08:43:55

标签: jwilder-nginx-proxy

我想通过基本身份验证支持保护我的反向代理服务器。根据[read-me] [1],我已将 -v /path/to/htpasswd:/etc/nginx/htpasswd添加到我的docker-compose文件中:

version: '2'
services:
    frontproxy:
        image: traskit/nginx-proxy
        container_name: frontproxy
        labels:
            - "com.github.jrcs.letsencrypt_nginx_proxy_companion.docker_gen"
        restart: always
        environment:
            DEFAULT_HOST: default.vhost
            HSTS: "off"
        ports:
            - "80:80"
            - "443:443"
        volumes:
            - /home/frank/Data/htpasswd:/etc/nginx/htpasswd
            - /var/run/docker.sock:/tmp/docker.sock:ro
            - "certs-volume:/etc/nginx/certs:ro"
            - "/etc/nginx/vhost.d"
            - "/usr/share/nginx/html"
    nginx-letsencrypt-companion:
        restart: always
        image: jrcs/letsencrypt-nginx-proxy-companion
        volumes:
            - "certs-volume:/etc/nginx/certs"
            - "/var/run/docker.sock:/var/run/docker.sock:ro"
        volumes_from:
            - "frontproxy"
volumes:
    certs-volume:

htpasswd文件包含我从工作的Nginx服务器的.htpasswd文件复制的内容。我知道.htpasswdhtpasswd之间的区别,但不了解此处应使用哪种格式和名称。

代理服务器无需检查授权即可连接服务(在我的情况下为基本模式)(密码未存储在浏览器中!)。

要使nginx进行检查授权,必须进行哪些更改? [1]:https://github.com/nginx-proxy/nginx-proxy#readme

1 个答案:

答案 0 :(得分:0)

我认为您已经理解htpasswd是一个文件夹,并且相应的htpasswd文件的名称必须与您的虚拟主机名匹配:

您必须在/ etc / nginx / htpasswd / $ VIRTUAL_HOST目录中创建一个名为VIRTUAL_HOST变量的文件

这意味着:

  • 您将文件夹安装到Docker容器的/ etc / nginx / htpasswd中
  • 在此文件夹中,根据您的虚拟主机地址创建一个passwd文件,例如example.de:
  • 您可以使用以下命令创建相应的文件: htpasswd -c example.de username