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 的 acls

例如:

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

這樣您就可以從連結中刪除所有連接埠分配。

相關內容