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

Back to archive index

雲雀 路朗 hibar****@nttco*****
2012年 2月 7日 (火) 09:41:01 JST


川西様

雲雀です。

情報を共有していただき、ありがとうございます。

>> apacheの設定については特にどのようなところを懸念されておりますでしょうか。

apacheの設定は、懸念点があるわけではなく、手元の環境で同事象を
再現させるためにお聞きしました。
#言葉足らずで申し訳ありません。

>> ただ何回か実施しているとl7vsdプロセスが落ちる現象が発生してしまいました。
DebugLogを吐かせながら動かすと、まれにcoreダンプすることがあるようです。
#coreを見ないと、DebugLogが原因とは断言できませんが。

ひとまずは、いただいた情報から、ステータスコードの処理を
追ってみたいと思います。

何か、進展がありましたらご連絡いたします。


(2012/02/06 23:38), kawanishi wrote:
> 雲雀様
> 
> はじめまして。川西と申します。
> 
> 本件について、ご連絡頂きましてまことにありがとうございました。
> 
> 早速ですがご指示頂いた通り、
> ・urlモジュールをsessionless
> ・qos,maxconnの設定をコメントアウト
> 上記を実施してテストを行いましたが残念ながらエラーとなりました。
> ただ何回か実施しているとl7vsdプロセスが落ちる現象が発生してしまいました。
> qos,maxconnは関係なく、url moduleをsessionlessにした場合です。
> debugログを取得しておりましたが少々長いので、終わりから数行を取り急ぎ抜 
> 粋いたしました。
> ****となっている部分はIPアドレスもしくはFQDNが記述されていました。
> 
> 2012/02/07 23:07:11 [DEBUG] l7vsd_network VSD10010065 conn->ciom->status 
> change: 1->84 **** 0xb7f23710 conn.c:383
> 2012/02/07 23:07:11 [DEBUG] l7vsd_network VSD10010066 pointer_assign: 
> conn->ciom->callback=0x807 **** 0xb7f23710 conn.c:392
> 2012/02/07 23:07:11 [DEBUG] l7vsd_network VSD10010067 pointer_assign: 
> conn->ciom->data=l7vs_conn={lsock=0x892b198: srv=(nil): dest=(nil): 
> caddr=sockaddr_in={sin_addr=****: sin_port=39066}: 
> raddr=sockaddr_in={sin_addr=0.0.0.0 <http://0.0.0.0>: sin_port=0}: 
> ciom=l7vs_iomux={fd = 7: callback = 0x807a4c0: status = 84: data = 
> 0x8942250}: riom=l7vs_iomux={fd = -1: callback = (nil): status = 1: data 
> = (nil)}: proto=6: cldata=: cldata_len=0: cldata_bufsize=204800: 
> cmss=1388: sorry_conn_flag=0: old_dest=(nil)} **** 0xb7f23710 conn.c:402
> 2012/02/07 23:07:11 [DEBUG] l7vsd_event VSD10190018 in_function: void 
> l7vs_iomux_add(struct l7vs_iomux* iom, enum iomaction action) 
> iom=l7vs_iomux={fd = 7: callback = 0x807a4c0: status = 84: data = 
> 0x8942250}: iomaction=0 **** 0xb7f23710 iomux.c:381
> 2012/02/07 23:07:11 [DEBUG] l7vsd_event VSD10190022 epoll_ctl : epfd=4: 
> op=EPOLL_CTL_ADD: fd=7: event.events=-2147483631: 
> event.data=l7vs_iomux={fd = 7: callback = 0x807a4c0: status = 84: data = 
> 0x8942250} **** 0xb7f23710 iomux.c:438
> 2012/02/07 23:07:11 [DEBUG] l7vsd_event VSD10190023 out_function: void 
> l7vs_iomux_add(struct l7vs_iomux* iom, enum iomaction action) 
> return_value: void **** 0xb7f23710 iomux.c:448
> 
> 以下.htaccessの設定になります。8MB以上のファイル転送の際に指定のURLへ転 
> 送します。
> これはドキュメントルート直下においております。
> ---------------------------------------------------------------------------
> LimitRequestBody 8888888
> ErrorDocument 413 http://www.yahoo.co.jp/
> ---------------------------------------------------------------------------
> 
> apacheの設定については特にどのようなところを懸念されておりますでしょうか。
> さすがに全てというわけでにもいきませんので一部抜粋しました。
> 基本的には80,443の両方でListen。keepaliveのoff。standaloneで起動しており 
> ます。
> 
> ServerType standalone
> keepalive off
> Timeout 300
> KeepAlive off
> MinSpareServers 5
> MaxSpareServers 10
> StartServers 5
> MaxClients 32
> MaxRequestsPerChild 300
> BindAddress *
> LoadModule php5_module libexec/libphp5.so
> ServerSignature Off
> ServerTokens Prod
> TraceEnable Off
> AccessFileName .htaccess
> ErrorDocument 500 /maintenance.html
> ErrorDocument 400 /maintenance.html
> ErrorDocument 403 /maintenance.html
> ErrorDocument 404 /maintenance.html
> 
> 
> port80,443どちらでも発生するため、SSL関係は除外しました。
> ログ関係、フォルダ毎のディレクティブ設定は除外しました。
> addtype,addlanguage関係は除外しました。
> 
> 以上となります。
> 必要な情報がございましたら大変お手数ですがご連絡頂けないでしょうか。
> 解決に向けて、ご教示頂けたらと存じます。
> 
> 以上、宜しくお願い致します。
> 
> 2012年2月6日20:47 雲雀 路朗 <hibar****@nttco***** 
> <mailto:hibar****@nttco*****>>:
> 
>     川西様
> 
>     はじめまして。雲雀と申します。
> 
>     urlモジュールをsessionlessに変更するのとあわせて
>     qos,maxconnの設定を外して実施していただけないでしょうか?
> 
>     どの部分が悪さをしているのか切り分けるため、
>     使用する機能を削った状態で、再現ができると、
>     解析が行いやすいです。
>     #お手隙の際にでも、試していただけると幸いです。
> 
>     そのほか、Apacheの設定についても、共有できる
>     情報がございましたら差し支えない範囲で結構ですので
>     ご提示願います。
> 
>     特に、LimitrequestbodyとErrorDocument周りの設定
>     を共有いただけると幸いです。
> 
>     以上、よろしくお願いいたします。
> 
>     (2012/02/02 21:54), kawanishi wrote:
>      > 高舘 様
>      >
>      > こちらこそはじめまして。川西と申します。
>      >
>      > 情報頂きありがとうございました。
>      > 早速頂いた情報を元に試しましたが、残念ながら解決に至りませんでした。
>      >
>      > ただしそこらへんに解決の糸口がありそうな気がします。
>      > アプリケーションを入れ替えるというのはあまりしたくないので、設定変更
>      > で可能であれば、それに越した事はないですね
>      >
>      > 引き続き、何か情報がございましたら細かい事でも結構ですので
>      > 頂けますと幸いです。
>      >
>      >
>      > 2012年2月2日13:17 yosuke takadate <taten****@gmail*****
>     <mailto:taten****@gmail*****>
>      > <mailto:taten****@gmail***** <mailto:taten****@gmail*****>>>:
>      >
>      > 川西さん
>      >
>      > はじめまして。高舘と申します。
>      >
>      > Apacheのリバースプロキシをはさんだ構成ではありませんが、
>      > UM-L7 2.1.3でファイルアップロード出来ない問題が発生した事があります。
>      >
>      > その時は、モジュール指定を「url」ではなく、「sessionless」に変更して
>      > 解決しました。
>      > (要件上URLパターンマッチは必須である場合は解決になりませんが。。)
>      >
>      > 一度試してみても良いかと思います。
>      > 宜しくお願いします。
>      >
>      > 2012年2月1日15:58 kawanishi <hkawa****@gmail*****
>     <mailto:hkawa****@gmail*****>
>      > <mailto:hkawa****@gmail***** <mailto:hkawa****@gmail*****>>>:
>      >
>      > はじめまして。川西と申します。
>      >
>      > 長文にて失礼致します。
>      > あるシステムにて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 <http://l7directord.cf> <http://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 <http://l7vs.cf> <http://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*****
>     <mailto:hkawa****@gmail*****> <mailto:hkawa****@gmail*****
>     <mailto:hkawa****@gmail*****>>>
>      > -------------------------------------------------------------------
>      >
>      >
>      > _______________________________________________
>      > Ultramonkey-l7-users mailing list
>      > Ultra****@lists*****
>     <mailto:Ultra****@lists*****>
>      > <mailto:Ultra****@lists*****
>     <mailto:Ultra****@lists*****>>
>      > http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users
>      >
>      >
>      >
>      >
>      >
>      > _______________________________________________
>      > Ultramonkey-l7-users mailing list
>      > Ultra****@lists*****
>     <mailto:Ultra****@lists*****>
>      > http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users
> 
> 
>     --
>     ==============================================
>     雲雀 路朗(ひばり みちろう)
>     ==============================================
> 
> 
> 
> 
> _______________________________________________
> Ultramonkey-l7-users mailing list
> Ultra****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users


-- 
==============================================
雲雀 路朗(ひばり みちろう)
==============================================





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