reverse-proxy - Traefik 反向代理到外部服务器
问题描述
我想访问 Internet 上而不是我的 docker 网络上的 Keycloak 服务器。我想将 Keycloak 服务器的域隐藏在我自己的域后面。因此,如果我访问 http://localhost/auth/,则应该显示来自 Keycloak 服务器的页面。我不想重定向到实际的 Keycloak 服务器。
我尝试了以下配置,但它不起作用。当我转到 http://localhost/auth 时,我得到一个“找不到 404 页面”。我希望你能帮助我。非常感谢您的帮助 :)
码头工人-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"
规则.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"
解决方案
改变:
- ./rules.yml:/etc/traefik/rules.yml
至:
- /etc/traefik/rules.yml:/etc/traefik/rules.yml
应该这样做!
PS感谢您的提问;真的很喜欢学习 Traefik 和 Keycloak!
推荐阅读
- python - 查找 2 个三角形在 3D 空间中是否垂直
- go - Go嵌入:方法未继承
- r - 平均时间数据匹配每列
- twilio-api - Gather 动词的行为类似于 Say,说话后挂断电话 / 动作 URL 有效
- javascript - 使用 Material Angular 和 Leaflet 切换 sidenav 时调整 sidenav 内容的大小
- reactjs - react-router-dom 链接不更新页面
- google-cloud-firestore - 获取文档字段包含值的所有文档
- html - ::after 选择器影响另一个 ::after 选择器 - 这是一个错误吗?
- mysql - 将周数与表中的日期值相关联
- oboe - Android 双簧管库:可以从 2 个录音设备录制 2 个流吗?