很少!
我是Traefik的新手,这些文档对尝试进行非常基本的测试没有帮助。
我正在尝试在远程服务器上运行其主页link上给出的traefik基本示例,该服务器我使用IP地址进行访问,并且没有这样的域名。但是所有重复和教程示例在我看来都是一样的-没有讨论如果一个人没有域名怎么办。 (两者都无法创建,例如服务器位于VPN后面。)
问题:-
没有域名时,应该如何配置traefik.frontend.rule。如果我的IP地址是xx.xx.xxx.xxx。
compose.yml
version: "3"
services:
traefik:
image: traefik:alpine
ports:
- 80:80
volumes:
- ${traefikConfigDirectory}:/etc/traefik
- /var/run/docker.sock:/var/run/docker.sock
# network_mode: host
whoami:
image: emilevauge/whoami
labels:
- traefik.enable=true
- traefik.frontend.rule=PathPrefixStrip:/testpath
# network_mode: host
config.toml
defaultEntryPoints = ["http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[docker]
endpoint = "unix:///var/run/docker.sock"
exposedByDefault = false
usebindportip=false
[更新]
但是,按照@marvin的建议,我在traami中添加了traefik.port = 80标签,并且我还放了network_mode: host
,所以我可以运行了。但是如何在不将network_mode托管的情况下使其运行?
答案 0 :(得分:2)
您不需要主机名。 IP地址将指向您的traefik:假设是1.2.3.4:80(您实际上并不需要80:仅用于示例) 例如,对于某些tomcat应用程序(在8080上),规则可能是这样的:
- "traefik.docker.network: traefik"
- "traefik.frontend.rule=PathPrefixStrip: /somepath"
- "traefik.port=8080"
- ...
请参阅:规则中没有IP。因为该规则仅匹配ip或域之后的路径。
在这里,每次调用 1.2.3.4/somepath 都会重定向到 1.2.3.4:8080 。您不必在tomcat容器上发布8080端口。 如果您的应用程序已有路径,则只需删除“ Strip”部分:“ PathPrefix:/ somepath”
编辑:带有您的文字
您的撰写将变成stg(未经测试):
version: "3"
services:
traefik:
image: traefik:alpine
...
volumes:
- ${traefikConfigDirectory}:/etc/traefik
- /var/run/docker.sock:/var/run/docker.sock
networks:
- traefik-net
whoami:
image: emilevauge/whoami
labels:
- traefik.enable=true
- traefik.frontend.rule=PathPrefixStrip:/testpath
- traefil.docker.network=traefik-net
networks:
- traefik-net
networks:
traefik-net: {}