2009-04-17 12 views
0

私は自分のWebサーバーを作成していますが、私はまだ同時接続を適切に処理していません。私は大量のページ読み込みの遅れが同時接続を不適切に処理するため(私はSYNに応答しますが、何とかGETパケットを失います。ブラウザはしばらくしてから再試行しますが、3秒かかる)!これをデバッグするには長い時間がかかります。ウェブサーバーは非常に切り離されて公開されることはなく、このアプリケーションの主な目的ではないため、私はこのようにコーナーを切っていきたいと考えています。サーバー側からの同時接続数を制限しますか?

同時接続数を1に制限するといいでしょう。IEのレジストリハックを使ってそのパラメータを変更し、about:configをFirefox用に使用すると両方が完璧に機能するからです。

その他の回避策も参考になります。私が考えることができるカップル:

1 - ブラウザーに期限切れのないものをすべてキャッシュして、低速ロード(.js、.css、およびイメージファイル)が1回だけ発生するようにブラウザに指示します。チェックサムをファイルの最後に追加すると(img src = "/ img/blah.png?12345678")、ファイルを更新すると正しく読み込まれます。

2 - .htmlファイルをインラインで読み込むために.jsと.cssを追加します。でも、それでもイメージの問題は解決されません。とにかく簡単ではありません。

+0

あなたのリッスンバックログを増やしてみましたか? –

答えて

0

私は決してこれを行う方法を見つけませんでした。

私の根底にある問題は、あまりにも多くのリクエストが入っていて、制限された受信バッファがemac ramにあふれていたということでした。オーバーフローする受信バッファ=破棄されたパケット。解決策は、すべての.jsファイルとすべての.cssファイルを1つの.jsファイルと1つの.cssファイルにまとめて、要求を下げることでした。すべての画像、js、cssページに1年の有効期限を設定しました。 htmlページはすぐに期限切れになるように設定されています。 md5チェックサムをファイルに追加するためのperlスクリプトを書いたので、変更されたファイルは再フェッチされます。今は素晴らしい作品です。ページは、最初のロードがすべてをキャッシュした直後にロードされます。

0

Firefoxのようなブラウザに、少なくとも一部のhttpヘッダーなどを介してユーザーには同時に読み込まないようにすることはできません。

関連する問題