Kouhei TANUMA
clamm****@gmail*****
2008年 2月 20日 (水) 23:54:23 JST
東さん 動作確認していただきありがとうございます。 すいません、PATTERN が何を意味しているのかわからないのですが、 Request URL(URI)の一部と想定して回答します。(URLモジュール使用) 間違っていましたら、詳細をお教えください。 現状ですと同一の仮想IPアドレスに対する複数の振り分け方法の設定としては OR 条件しか設定できません。 そのため、AND 条件の設定はできないのですが、以下のように別の仮想IPアドレスに 振り直すことで同様の動きとなります。 External-VIP:80 IF POST THEN Internal-VIP:8888 ELSE HOST2 Internal-VIP:8888 IF PATTERN THEN HOST1 ELSE HOST2 l7directord.cf だと以下のようになります。 (PATTERN を 'cgi-bin' としています) #----- # POSTリクエスト を InternalVIP:8888 に転送 virtual=ExternalVIP:80 real=InternalVIP:8888 masq module=httpmethod --method 'POST' checktype=connect scheduler=rr protocol=tcp # POSTリクエスト以外は、HOST2 virtual=ExternalVIP:80 real=HOST2:80 masq module=sessionless checktype=connect scheduler=rr protocol=tcp # POSTリクエストで転送されてきたものの URL に cgi-bin が含まれる場合は、HOST1 virtual=InternalVIP:8888 real=HOST1:80 masq module=url --pattern-match 'cgi-bin' checktype=connect scheduler=rr protocol=tcp # cgi-bin が含まれない場合は、HOST2 virtual=InternalVIP:8888 real=HOST2:80 masq module=sessionless checktype=connect scheduler=rr protocol=tcp #----- 以上、ご確認ください。 なお、よろしければで結構ですが、どのような場合にこのような設定をするのか 後学のために教えていただけますでしょうか。 HOST1 で POST による特定の処理を行い、かつ、通常来ないはずのGETなどでの 不正アクセスを HOST2 側でエラー処理するといった感じなのでしょうか?