Haproxy ACL規則致使故障一例!

    今天一個同事來找我反應,說他們的新站點 yuanfang.ufo.xbox.com.cn 怎麼也訪問不了,頁面返回的是一臺測試機的代碼,我第一反應是DNS解析問題,dig了一下 正常,登陸後端web抓包沒有 yuanfang.ufo.xbox.com.cn這個包頭的請求。又到同事說的那個測試機抓 結果抓了一大堆。web

    這時候想應該是 haproxy的規則出問題了,按理說 只要是 ufo.xbox.com.cn 的域名都會分到默認後端上,並且分給那臺測試機的ACL也並無 對yuanfang.ufo.xbox.com.cn的匹配,鬱悶了,繼續找... 後來發現了下面這條規則
正則表達式

acl host_xman_test hdr_reg(host) -i f.[a-z]+.(xman|ufo).xbox.com.cn


hdr_reg(host) 是正則表達式匹配,我仔細一想 原來f.[a-z]+.(xman|ufo).xbox.com.cn 讓haproxy理解成了
後端

*f.[a-z]+.(xman|ufo).xbox.com.cn 由於 「.」沒有被轉義 因此 yuanfang.ufo.xbox.com.cn 就被 acl host_xman_test 給攔截了... 趕忙改爲了 ^f\.[a-z]+.(xman|ufo).xbox.com.cn重啓haproxy,訪問正常
bash

    域名多的時候用正則匹配必定要當心啊!~~~
ide

相關文章
相關標籤/搜索