Haproxy

不允許訪問 haproxy IP 地址

  • January 30, 2018

我有一個在 ip 1.2.3.4 上執行的 haproxy。它託管大約 10 個網站域。如果我訪問http://1.2.3.4,它顯然會訪問這 10 個域之一,但我不希望它這樣做。我希望它給出錯誤或其他東西。我怎樣才能做到這一點?

我假設您為每個域配置了一個後端。您基本上只需要通過主機標頭配置匹配(您可能已經這樣做了),然後配置為所有其他流量提供服務的預設後端。

frontend http-in
   bind *:80
   mode http

   # match host headers
   acl host_one hdr(host) -i one.example.com
   acl host_two hdr(host) -i two.example.com
   # ..
   acl host_ten hdr(host) -i ten.example.com

   # map to backends
   use_backend backend_one if host_one
   use_backend backend_two if host_two
   # ..
   use_backend backend_ten if host_ten

   # all unmatched hosts fallback to default
   default_backend backend_default

如果您希望此後端處理錯誤,可以使用http-request 拒絕指令來實現:

backend backend_default
   errorfile 403 /var/www/403.http
   http-request deny deny_status 403

請注意,您僅限於errorfile支持的錯誤程式碼,即 200、400、403、405、408、429、500、502、503 和 504。

引用自:https://serverfault.com/questions/894419