我使用 HAPROXY 容器作为虚拟 HPC 集群的入口点。根据前缀,请求被转发到不同的容器。
:80/foswiki/ -> :80/foswiki/ :80/kibana/ -> :80/kibana/ :80/graphite-api/ -> :80/graphite-api/ ...
我使用的配置非常简单:
前端http-in
绑定 *:80
acl uri_foswiki path_beg /foswiki
use_backend srv_foswiki 如果 uri_foswiki
# GitLab
default_backend srv_gitlab
后端 srv_foswiki
平衡循环
cookie SERVERID 插入
选项 httpclose
选项转发
服务器 foswiki 172.17.0.3:80 cookie
问题是有网络服务器直接以 root 身份为网站提供服务,没有前缀。'Graphite-web',例如或 gitlab 图像。
我尝试削减前缀并进一步转发它,但我真正想要的是 haproxy 将前缀保留在路径中,并且它对后端服务器是透明的。如果我点击“gitlab_server:80/dashboard/”,它应该显示为“frontend_ip:80/gitlab/dashboard”。
后端 srv_gitlab
平衡循环
#cookie SERVERID 插入
模式http
reqrep ^([^\ ]*)\ /gitlab/(.*) \1\ /\2
平衡循环
选项转发
服务器 gitlab 172.17.0.18:80 cookie
我不认为这是一件很难的事情,但在我看来,我的谷歌技能有点残废。每次我最终都会重写不保留前缀的规则。
任何人?基督教
编辑:用户无法访问内部 IP 地址...