Traefik反向代理到外部服务器

时间:2020-04-04 17:23:01

标签: reverse-proxy traefik

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

Drawing

我尝试了以下配置,但是它不起作用。当我转到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"

rules.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"

1 个答案:

答案 0 :(得分:2)

更改:

- ./rules.yml:/etc/traefik/rules.yml

收件人:

- /etc/traefik/rules.yml:/etc/traefik/rules.yml

应该这样做!

P.S。 谢谢你的问题;非常了解Traefik和Keycloak!