Traefik 反向代理到外部服务器

Tob*_*ner 11 reverse-proxy traefik

我想访问互联网上而不是我的 docker 网络上的 Keycloak 服务器。我想将 Keycloak 服务器的域隐藏在我自己的域后面。因此,如果我访问 http://localhost/auth/ 那么应该显示来自 Keycloak 服务器的页面。我不想重定向到实际的 Keycloak 服务器。

绘画

我已经尝试过以下配置,但它不起作用。当我访问 http://localhost/auth 时,我收到“404 页面未找到”。我希望你可以帮助我。非常感谢您的帮助 :)

docker-compose.yml

version: "3.7"

services:

  proxy:
    image: traefik:v2.2
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.file=true"
      - "--providers.file.filename=/etc/traefik/rules.yml"
      - "--entrypoints.web.address=:80"
    ports:
      - 80:80
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./rules.yml:/etc/traefik/rules.yml

  website:
    image: containous/whoami
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.website.rule=Host(`localhost`)"
      - "traefik.http.routers.website.entrypoints=web"
Run Code Online (Sandbox Code Playgroud)

规则.yml

http:
  routers:
    my-route:
      rule: "Host(`localhost`) && PathPrefix(`/auth`)"
      service: my-keycloak-server
  services:
    my-keycloak-server:
      loadBalancer:
        servers:
          - url: "https://keycloak.domain.com/auth"
Run Code Online (Sandbox Code Playgroud)

Dan*_*n M 3

改变:

- ./rules.yml:/etc/traefik/rules.yml
Run Code Online (Sandbox Code Playgroud)

到:

- /etc/traefik/rules.yml:/etc/traefik/rules.yml
Run Code Online (Sandbox Code Playgroud)

应该这样做!

PS感谢您的提问;真的很喜欢学习 Traefik 和 Keycloak!