Traefik HTTP Router基础配置:如何通过端口直接访问应用
解决方案
你只需要修改Nomad任务里的Traefik标签配置,调整路由规则即可实现直接通过根路径访问:
修改后的标签配置
tags = [ "traefik.enable=true", "traefik.http.routers.one.rule=Path(`/`)", "traefik.http.routers.one.priority=10" ]
关键修改说明
- 将路由规则从
Path(/myapp)改为Path(/),让Traefik把所有访问traefik_ip:8080根路径的请求转发到你的Web应用。 - 添加
priority=10是为了确保这个根路径路由的优先级高于其他可能存在的默认路由,避免出现匹配冲突。
如果你的Web应用本身就是在根路径下提供服务,修改后直接访问traefik_ip:8080就能正常使用。
要是你的应用原本仅处理/myapp路径的请求,还需要添加路径重写规则,把根路径请求转成应用期望的路径:
tags = [ "traefik.enable=true", "traefik.http.routers.one.rule=Path(`/`)", "traefik.http.middlewares.myapp-rewrite.replacepathregex.regex=^/$", "traefik.http.middlewares.myapp-rewrite.replacepathregex.replacement=/myapp", "traefik.http.routers.one.middlewares=myapp-rewrite@consulcatalog" ]
修改完成后重新部署Nomad任务,Consul会同步服务信息,Traefik会自动更新路由规则,之后就能直接通过traefik_ip:8080访问你的应用了。
内容的提问来源于stack exchange,提问作者Stranger
相关产品推荐
相关产品推荐

