
我已經設定了 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
這樣您就可以從連結中刪除所有連接埠分配。