haproxy:如何拦截直接指向后端服务器的链接

haproxy:如何拦截直接指向后端服务器的链接

我已经设置了 haproxy 并且它运行良好,我可以访问位于后端服务器上的网页。

设置如下:

有一个前端 haproxy 服务器,根据端口指向不同的后端

  • 前端:81 指向 后端:8100
  • 前端:82 指向 后端:8200

在前端网页上http://frontend:82/有这样的链接,http://frontend:82/foo每当我点击其中一个链接时,haproxy 都会确保连接到正确的后端服务器。其中一个链接指向http://backend:8200/bar(后端服务器和不同的端口)。

如果我点击该链接,我会被重定向到后端服务器,而不是前端 haproxy。有什么方法可以拦截对后端服务器的调用吗?

答案1

当用户点击链接时http://backend:8200/bar,除非“后端”的 DNS 指向您的 HAProxy,否则您将无法捕获该请求。

端口可能不是实现此目的的最佳方式。

你最好在 80 上设置一个前端,并使用基于 url 的 acl

例如:

frontend http_frontend 
   bind *:80
   acl path_foo path_beg /foo
   acl path_barbar path_beg /bar 
   use_backend foo_backend if path_foo
   use_backend bar_backend if path_bar

backend foo_backend
   server backend:8200

backend bar_backend
   server backend:8100

这样,您就可以从链接中剥离所有端口分配。

相关内容