【发布时间】:2021-08-20 20:17:03
【问题描述】:
我正在尝试使用 docker 设置 geoserver 和 traefik,但路径有问题。
Geoserver 的主要入口点位于 /geoserver,但我想让它可以在我的域的根路径访问,比如说 example.com。这是我整理的docker-compose 文件:
version: "3"
services:
traefik:
image: traefik:2.4
restart: unless-stopped
networks:
- web
ports:
- 80:80
- 443:443
command:
- --log.level=DEBUG
- --providers=docker
- --providers.docker.network=geoserver_web
- --entrypoints.websecure.address=:443
- --entrypoints.web.address=:80
- --entrypoints.web.http.redirections.entrypoint.to=websecure
- --entrypoints.web.http.redirections.entrypoint.scheme=websecure
# - --api.dashboard=true
- --certificatesresolvers.lets-encrypt.acme.email=admin@example.com
- --certificatesresolvers.lets-encrypt.acme.storage=acme.json
- --certificatesresolvers.lets-encrypt.acme.tlschallenge=true
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
geoserver:
image: oscarfonts/geoserver:latest
restart: unless-stopped
networks:
- web
labels:
- traefik.port=8080
- traefik.http.routers.geoserver.rule=Host(`example.com`)
- traefik.http.routers.geoserver.entrypoints=websecure
- traefik.http.routers.geoserver.tls=true
- traefik.http.routers.geoserver.tls.certresolver=lets-encrypt
- traefik.http.middlewares.geoserver.replacepathregex.regex=(.*)
- traefik.http.middlewares.geoserver.replacepathregex.replacement=/geoserver/$$1
networks:
web:
在通过traefik docs 之后,我认为在地理服务器服务上使用replacepathregex 应该将/geoserver 添加到传递给地理服务器的所有请求的路径中,并且应该使服务在example.com 可用,而不是@987654330 @,但它不起作用。
我也试过addPrefix,但也没有用。
我的配置不正确吗?
或者我对这些中间件做什么的理解?
有没有办法将我的服务配置为可通过example.com 访问,而不是example.com/geoserver?
【问题讨论】:
标签: docker docker-compose traefik