In message <_A89@delegate-ja.ML_> on 02/27/08(20:39:47) you 岩崎 大志 <pleaabrv6-mykgh4444btw.ml@delegate.org> wrote: |システムフロンティアの岩崎と申します。 | |HTTPで大きいファイルを返したいのですがどうすればよいでしょうか? 特に制限していませんので、2GBでも4GB以上でも返せるはずです。 |マニュアル等調べたのですがわかりませんでした。 |HTTPCONF=max-reqlineとHTTPCONF=max-reqheadなど色々試してみましたが駄目でした。 |おそらくリクエストではなくレスポンスの方が原因と思っていまして |レスポンス側のパラメータ等はありますでしょうか? | |昔のバージョンでは問題なかったのですが。 どのあたりの版でしょうか? 問題の無い版でのログと較べてみると何かわかると思うのですが。。。 |以下、DeleGate、OS、パラメータ、ログになります。 | |【DeleGateバージョン】 |[iiicbg@akdp109 delegate]$ more README |------------------------------------------------------------------------------ | DeleGate/9.8 RELEASE NOTE | | Date: November 16, 2007 | Author: Yutaka Sato | <URL:http://www.delegate.org/delegate/updates/> |------------------------------------------------------------------------------ | |DeleGate/9.8 (DEVELOPMENT) |9.8.0 introduced generalized CLUSTERing of servers, SSL Server Name Indication |9.8.1 coped with VC++ in VisualStudio 2005/2008, revival of IPv6 on Windows | | |【OS】 |[iiicbg@akdp109 delegate]$ uname -a |Linux akdp109 2.4.21-40.EL #1 Thu Feb 2 22:32:00 EST 2006 i686 i686 i386 GNU/Linux | | |【パラメータ】 |[iiicbg@akdp109 DeleGate]$ more start_delegate_P21016.sh_http |#!/bin/sh |/home/nrisys/DeleGate/delegated -P21016 \ |SERVER=http://192.175.244.16:80/ \ |OWNER="iiicbg/nri" \ |TIMEOUT=acc:0,con:0,io10800 \ |CRON="0 0 * * * -restart" \ |DGROOT=/home/nrisys/DeleGate/ \ |LOGDIR='/home/nrisys/DeleGate/log/[date+/oldlog/%Y%m%d]' \ |PERMIT="http:*:*" \ |CACHE=no \ |SHARE="" \ |MAXIMA=listen:200,delegated:200 \ |RESOLV=cache,file \ |ADMIN=iiicbg@akdp109 | | |【ログ】 |02/27 19:36:52.12 [15880] 1+11: Authorization: Dont-Read/Write-Cache ON |02/27 19:36:52.12 [15880] 1+11: XHost: (0,0,1) 192.175.244.16 <= 192.175.244.150 |02/27 19:36:52.12 [15880] 1+11: ConnectToServer connected [14] {192.175.244.16:80 <- 192.175.244.150:36355} [0.001s] |02/27 19:36:52.12 [15880] 1+11: willSTLS_SV: ServerFlags=10 |02/27 19:36:52.12 [15880] 1+11: HTTP => (192.175.244.16:80) POST /mqexec HTTP/1.0^M |02/27 19:36:52.12 [15880] 1+11: -- POST flush mssg without rew. 1408/1408 |02/27 19:36:52.12 [15880] 1+11: relayRequestBody1 done (1400/0000 000X) |02/27 19:36:54.05 [15880] 1+11: #HT11 SERVER ver[HTTP/1.1] conn[close] |02/27 19:36:54.05 [15880] 1+11: HTTP/1.1 200 Content-{Type:text/xml Encoding:[/] Leng:1243497} Server:IBM_HTTP_SERVER/1.3.26.2 Apache/1.3.26 (Unix) |02/27 19:36:54.05 [15880] 1+11: #### flushResp: too large ContLen: 1243497 (0/1243497/0.02/1.93/) |02/27 19:36:54.05 [15880] 1+11: detach respBuff: flush slow response. これは、DeleGateで一時ファイルにバッファするには"too large" なので、 バッファリングを止めたという意味で、中継は普通に継続します。 |02/27 19:36:54.05 [15880] 1+11: ERASED Content-Length: 1243497^M ここでContent-Lengthを削除しています。これは、バッファリングなしで 中継するため、(この場合リバースプロキシによる)書換え後に長さが変化する 場合に、間違った値になるためです。 これは、以前の版ではオプションでしたが、9.6.2 から強制になりました。 |02/27 19:36:54.05 [15880] 1+11: INSERT Connection: closed |(UNIX) 36:54.053 [15880] +++EPIPE[42] fflushTIMEOUT() for EOF |02/27 19:36:54.05 [15880] 1+11: ClientEOF: text flush-2 [42 42] 200000 000000 X |02/27 19:36:54.05 [15880] 1+11: ## stop relay-1: no recipient & no cache これは、クライアント側がコネクションを切断したことを意味しています。 なので、なぜクライアントが切断したかが問題ですが、何か特殊なクライアントで、 Content-Length が無い場合に対処してない可能性が考えられます。 |02/27 19:36:54.05 [15880] 1+11: HTTP transmitted: 241head+16000/000000Fbody=>0txt+0bin->16000/000000X, 9i/2o/0f/0.0 ----- |02/27 19:36:54.05 [15880] 1+11: #HT11 EOF from the client (3) |02/27 19:36:54.05 [15880] 1+11: #HT11 close svsokcs[19,21] |02/27 19:36:54.05 [15880] 1+11: disconnected [42] -@[192.175.196.225]192.175.196.225:1989 (1.932s)(0) | |※1243497byte以上の電文を返したいのですが何か変更すべきパラメータがありますでしょうか? 9 9 ┌─┐┬┌──┬┐ //\^^ ( e ); {Do the more with the less -- B. Fuller} ├─┤│└─┐│ / 877m\_< >_ <URL:http://www.delegate.org/delegate/> ┴ └┴──┘┴────────────────────────────── 佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)