如何配置 traefik 身份验证以在 docker compose 中与 webdav 一起使用?
How to configure traefik authentication to work with webdav in docker compose?
我想在带有身份验证的 traefik 后面构建一个私有 webdav 服务器。
这里是 docker-compose.yml 文件:
version: '3.7'
services:
reverse-proxy:
image: traefik:v2.2
command: --api.insecure=true --providers.docker
labels:
- "traefik.http.middlewares.test-auth.digestauth.users=${AUTHUSER}"
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
webdav:
image: mwader/webdav
labels:
- "traefik.http.routers.webdav.rule=Host(`localhost`)||Host(`mydomain`)"
volumes:
- /data:/webdav
在“#docker-compose up -d”之后,webdav可以正常工作,但是没有任何认证,应该是digest auth。现在任何人都知道域可以访问我的文件。这是不可接受的。
那么我有什么地方做错了吗?我怎样才能做对?
谢谢!
仅仅定义中间件是不够的,你必须和路由器一起使用。尝试使用这个堆栈
version: '3.7'
services:
reverse-proxy:
image: traefik:v2.2
command: --api.insecure=true --providers.docker
labels:
- "traefik.http.middlewares.test-auth.digestauth.users=${AUTHUSER}"
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
webdav:
image: mwader/webdav
labels:
- "traefik.http.routers.webdav.rule=Host(`localhost`)||Host(`mydomain`)"
- "traefik.http.routers.webdav.middlewares=test-auth"
volumes:
- /data:/webdav
可以在此 article
中找到更多信息、详细信息和示例
我想在带有身份验证的 traefik 后面构建一个私有 webdav 服务器。
这里是 docker-compose.yml 文件:
version: '3.7'
services:
reverse-proxy:
image: traefik:v2.2
command: --api.insecure=true --providers.docker
labels:
- "traefik.http.middlewares.test-auth.digestauth.users=${AUTHUSER}"
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
webdav:
image: mwader/webdav
labels:
- "traefik.http.routers.webdav.rule=Host(`localhost`)||Host(`mydomain`)"
volumes:
- /data:/webdav
在“#docker-compose up -d”之后,webdav可以正常工作,但是没有任何认证,应该是digest auth。现在任何人都知道域可以访问我的文件。这是不可接受的。 那么我有什么地方做错了吗?我怎样才能做对? 谢谢!
仅仅定义中间件是不够的,你必须和路由器一起使用。尝试使用这个堆栈
version: '3.7'
services:
reverse-proxy:
image: traefik:v2.2
command: --api.insecure=true --providers.docker
labels:
- "traefik.http.middlewares.test-auth.digestauth.users=${AUTHUSER}"
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
webdav:
image: mwader/webdav
labels:
- "traefik.http.routers.webdav.rule=Host(`localhost`)||Host(`mydomain`)"
- "traefik.http.routers.webdav.middlewares=test-auth"
volumes:
- /data:/webdav
可以在此 article
中找到更多信息、详细信息和示例