1

HAPROXY で定義されたルールがいくつかあります

acl want_server_oa path_dir ServerOA    
acl serveroa_avail nbsrv(ServerOA) ge 1
use_backend ServerOA if want_server_oa serveroa_avail 

acl is_root hdr_dom(host) -i mydomain.com
use_backend domainRoot if is_root

最初の 3 つのルールは、特定のサブドメインにトラフィックをルーティングするように設定されました

mydomain.com/ServerOA/

そして、トラフィックをルーティングする次の 2 つのルールは、

mydomain.com/

これは期待どおりに機能します。ただし、入力すると

mydomain.com/anypath/

それは私にTomcat 404を与えます.2番目のルールセットが一致し、トラフィックをTomcatに転送し、Tomcatが404を返すと思われます.

ドキュメントに基づいて、他のすべてのパスをブロックするためにいくつかの ACL を定義しようとしましたが、うまくいきませんでした (haproxy の開始時に構成が受け入れられませんでした)。

block unless METH_GET or METH_POST want_server_oa
block unless METH_GET or METH_POST is_root

どんな助けでも大歓迎です。

4

1 に答える 1

1

ルート「mydomain.com/」およびサブフォルダーの下でアクセスできるようにする項目を明示的に定義してから、block他のすべての項目を定義する必要があります。(たくさんあるはずですよね?)

acl want_server_oa path_beg /ServerOA
acl allow_html path_reg -i /.*\.html
acl allow_styles path_reg -i /css/.*\.css
block unless METH_GET want_server_oa or METH_POST want_server_oa or METH_GET allow_html or METH_POST allow_html or METH_GET allow_styles or METH_POST allow_styles

追記:コマンドを使用して、構成にエラーがあるかどうかを確認できますhaproxy -c。そのようです:

haproxy -f /etc/haproxy/haproxy.cfg -c
于 2013-11-05T06:53:06.053 に答える