2012-10-23 41 views
1

如果我的網址格式爲/q/a/1234/q/b/456/q/c/987/q/x/abc/q/y/3455haproxy ACL正則表達式和邏輯或

我要路由形式/q/[a|b|c]/.*即什麼這是爲了隊列a或b或c一個後端,以及任何這意味着/q/[x|y]/.*到不同的後端,我將如何實現這一目標的任何網址嗎?

我嘗試:

acl use_server_1 path_reg /a|b|c/ 
use backend server1 if user_server_1 

acl use_server_2 path_reg /x|y/ 
use backend server2 if user_server_2 

這並不正確匹配的路由....任何想法?

+0

你不需要在一個字符類中使用'|'(除非你想要一個字符'|'也是一個有效的匹配)。 –

回答

-1

試試這個:

acl use_server_1 path_reg ^/q/[abc]/?.*$ 
use backend server1 if user_server_1 

acl use_server_2 path_reg ^/q/[xy]/?.*$ 
use backend server2 if user_server_2 
2

你有一個語法錯誤。您將您的正則表達式定義爲use_server_1use_server_2,但您的「使用」語句正在嘗試與useR_server_1useR_server_2進行比較。