[Ultramonkey-l7-users 497] ultramonkey-l7での「転送量制限」「ステータスコードの処理」について

Back to archive index

kawanishi hkawa****@gmail*****
2012年 2月 1日 (水) 15:58:24 JST


はじめまして。川西と申します。

長文にて失礼致します。
あるシステムにてUltramonkey-L7を利用しているのですが、原因不明の現象に遭遇し困っております。

現在以下の構成を構築しております。
Client ⇒ (reverse proxy(apache2) ⇒ LVS L7)同サーバ ⇒ Web Server(apache)
                                                     ⇒ Web Server(apache)

Web Server内でファイルをアップロードする機能(html)があり、
apacheの.htaccessに、Limitrequestbodyを記述してファイルサイズの制限をかけようとしております。
指定したサイズを超えたファイルがアップロードされた場合、ErrorDocumentにより指定した
URLへ転送される仕組みとしたいのですが、502(bad gateway)エラーとなり、(http,https両方とも)
意図した動作となりません。指定したサイズ内のファイルの場合、正常にアップロードされます。

当初はapacheの設定や、.htaccess内に記載している記載方法(文法、URL)の問題と考えて
おりましたが、検証を進めた結果、Ultramonkey-L7を構成から外すと期待した動作をすることから、
Ultramonkey-L7の仕様として、「設定ファイルへの指定以外の転送量の制限」や「ステータスコードの処理」
に何かしらの制限があるのではないかと引き続き調査を進めておりましたが、、原因の特定に至らず、
お知恵を借したいと思い、投稿させて頂いた次第です。

以下に調査内容と設定内容を記載します。

■Ultramonkey-L7が原因であると特定した経緯
1.LVS L7を構成から外すと該当の現象は発生せず、正常に指定したURLへ転送される。
2.LVS L7を LVS L4にすると該当の現象は発生せず、正常に指定したURLへ転送される。
3.clientは、LVS L7が管理しているIP:portに接続し、proxyを経由しない形で接続しても、該当の現象は発生する。
ただし502エラーはproxyが発行していたため、この構成の場合はcient側にて、エラー 101
(net::ERR_CONNECTION_RESET):
と表示される。

■ログの確認
4.limitrequestbodyの指定したファイルサイズの超えた場合、Web Server ⇒ LVS L7のレスポンスには、転送を示す302と、
  location情報(転送情報)に指定したURLが含まれている。
5.LVS L7 ⇒ Proxyのレスポンスにも、転送を示す302と、location情報(転送情報)に指定したURLが含まれている。
6.Proxyにて502が発行されてしまうために、client側には転送を示す302と、location情報(転送情報)が送られていない。
7. proxyを構成から外した場合(上記3.の構成)、LVS L7 ⇒ Clientのレスポンスには、転送を示す302と、location情報
  (転送情報)が含まれているようです。しかしclient側のWEBでは、エラー 101 (net::ERR_CONNECTION_RESET)という
  表示がされます。
8.L7vsdのdebugログを取得しましたが、有用な情報の発見に至りませんでした。

■補足
・ LimitRequestBodyを利用せず、rewriteやErrorDocumentによる転送(302)は正常に転送処理が行われます。
・ .htaccess内のErrorDocumentをコメントアウトし、LimitRequestBodyのみの設定とした場合も
   該当の現象(502bad gatewayエラー)が発生します。
   つまりapacheより返るステータスコードが302であろうと、413であろうと関係なく発生していることになります。
・web serverを1台に限定しても同じ現象が発生します。

■設定内容
一般的な設定かとは思うのですが、関係しそうな設定内容を記載します。

l7directord.cf
------------------------------------
checktimeout     = 5
negotiatetimeout = 5
checkinterval    = 10
retryinterval    = 5
checkcount       = 3
virtual  = ***.***.***.***:****
real =  ***.***.***.***:**** masq 1
real =  ***.***.***.***:**** masq 1
maxconn     = 1000
qosup       = 100M
qosdown     = 100M
module      = url --uri-pattern-match  '/.*$'
scheduler   = rr
quiescent   = yes
checkcount  = 2
------------------------------------

l7vs.cf
------------------------------------
max_events = 1024
read_bufsize = 20480
------------------------------------

■各アプリケーションのバージョン
ultramonkey-l7-2.1.3-1.i386.rpm
proxyサーバ  apache 2.2.17
WEBサーバ    apache 1.3.42

似たような問題が発生した方、解決方法の知見をお持ちの方がいらっしゃいましたら、
ご教示いただけましたら幸いです。


-------------------------------------------------------------------
kawanishi <hkawa****@gmail*****>
-------------------------------------------------------------------
-------------- next part --------------
HTMLの添付ファイルを保管しました...
Download 



Ultramonkey-l7-users メーリングリストの案内
Back to archive index