星期三, 6月 22, 2022

haproxy多網站對應設定

 用pound做反向代理用了很多年了,最近pound大幅改版原本就不多的功能又更精簡了,導致無法勝任原本的需求,所以換成了比較通用的haproxy。

相較於pound haproxy的功能多了許多,設定也複雜很多,我的需求是一臺反向代理對應多個(數十個)網站,haproxy要分別設定前端、後端對應,整個設定會非常繁雜。

幸好haproxy可以在設定檔中使用變量,所以就在前端設定

frontend https
        use_backend %[req.hdr(host),lower,word(1,.)]

這個變量會掫取使用者瀏覽網站的主機名稱並轉為小寫,對應到相應的後端區段。

backend XXXhostname1
        server s1 192.168.x.x1:80

backend XXXhostname2
        server s1 192.168.x.x2:80

前端使用變量以後,就不需要再對前端設定,數十個網站只要分別設定後端對應即可。