Haproxy
在 HAProxy 中限制 URL 的正則表達式
我已經成功地將我的網路應用程序中的 URL 限制為某些受信任的 IP,使用下面提到的 haproxy 配置中的配置
acl trusted-ip src -f /etc/haproxy/whitelist.lst acl protected-page url /abc /abc/ acl allowed-page url /abc/api/ http-request deny if protected-page !allowed-page !trusted-ip
我希望所有使用者都能訪問“/abc/api” URL,而“/abc”只能由受信任的 IP 訪問。這裡的問題是,如果來自不受信任 IP 的任何人輸入“/abc?something”,則 URL“/abc”會打開,為了避免這種情況,我將配置修改為
acl trusted-ip src -f /etc/haproxy/whitelist.lst acl protected-page url_reg ^(?!\/abc\/api).*$ http-request deny if protected-page !trusted-ip
現在我能夠解決上述問題,但是任何人都無法訪問“/abc/api”。任何幫助將不勝感激。
使用
path
代替url
這將提取請求的 URL 路徑,該路徑從第一個斜杠開始並在問號之前結束(沒有主機部分)。一個典型的使用是具有預取能力的記憶體,以及需要從數據庫中聚合多個資訊並將它們保存在記憶體中的門戶。請注意,對於傳出記憶體,使用“url”會更明智。對於 ACL,它通常用於匹配精確的文件名(例如:“/login.php”),或使用派生形式的目錄部分。另請參閱“url”和“base”獲取方法。
ACL derivatives : path : exact string match path_beg : prefix match path_dir : subdir match path_dom : domain match path_end : suffix match path_len : length match path_reg : regex match path_sub : substring match