我有一台专用服务器,其中安装了Rancher服务器和Rancher客户端,用于托管某些dockerized服务。
我已经成功安装了Traefik,并使用Rancher API后端对其进行了配置,并且它反向代理了我的服务,将它们托管在HTTPS之后,并且一切正常。
但是我仍然可以通过htttp://12.34.56.78:8080访问Rancher服务器。我也想在启用了https的情况下将Rancher服务器放在Traefik后面。
我尝试使用以下方式启动Rancher服务器:
sudo docker run -d \
-v /data/rancher/server/data:/var/lib/mysql \
--restart=unless-stopped \
-p 8080:8080 \
-l traefik.frontend.rule=Host:rancher.mydomainname.com \
-l traefik.enable=true \
-l traefik.backend=rancher \
-l traefik.default.protocol=http \
-l traefik.port=8080 \
rancher/server:v1.6.12
(以与我配置所有其他服务相同的方式),但是Traefik不会选择它,因为(我认为)Rancher服务器未出现在Traefik正在监视的Rancher API请求中(因为Rancher服务器是在Rancher外部启动且未托管的)通过它)。
来自Rancher Active Proxy,这是该工具it was supported
如果我的推理是正确的,那么Traefik不能以这种方式“拾取” Rancher服务器,我在想的另一种解决方案是,也许我必须为Rancher服务器创建一个单独的
[file]
部分,并将其添加到Traefik .toml中。文件...这是实现我想要的目标的正确方法,还是有更好的方法来实现此目标?
谢谢!
最佳答案
我聚会晚了将近2年,但我刚开始使用rancher
和traefik
后端来启动[docker]
。
Rancher 的docker-compose文件:
version: '3'
services:
web:
image: rancher/rancher:latest
labels:
traefik.enable: true
traefik.backend: rancher
traefik.frontend.entryPoints: http,https
traefik.frontend.passHostHeader: true
traefik.frontend.rule: "Host:rancher.mydomain.com"
traefik.backend.port: 80
traefik.port: 80
restart: unless-stopped
也许这对绊倒这个问题的人很有用。
关于docker - 我可以通过托管的Traefik容器为Rancher Server服务吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47723567/