2011-10-09 3 views
0

私は現在、自分自身のHTTPプロキシを作成しています。私はコードが動作しているが、ApacheBenchを使ってテストしてみると、今度は次のようなメッセージが表示されます。 orgサービス80 "getaddrinfo問題

ホスト名とポートが渡された場所でこの関数呼び出しが失敗する理由を考えることができません。

私はこれを解決するさまざまな方法をオンラインで見てきましたが、何も役に立たないことがありました。

誰にもアイデアはありますか?

編集 この問題は、アプリケーション内にDNSキャッシュシステムを実装することで解決しました。

答えて

2

解決策スタックの中には、作成したクエリの量が足りないことがありますか?

まず、​​で始まり、システムでどのようにクエリが解決されているかを確認する必要があります。ある時点で、最終的にローカルDNSキャッシュに到達します。一度にクエリが多すぎるとタイムアウトする可能性があります。

DNSキャッシュは、プロキシ(たとえばSquidなど)またはlwresdなどを使用してローカルで実行する必要があることがあります。

+0

+1:DNSサーバーまたはUDPスタックを非常に簡単にオーバーロードできます。さらに、サービス拒否攻撃を防ぐために、多くのDNSサーバーではIPごとにレートリミッタが設定されているため、1つのIPでシステムが過負荷になることはありません。 –

0

C-aresのような非同期DNS解決ライブラリを使用することをお勧めします。そうしないと、標準的な解決があなたのパフォーマンスをいかにして消滅させるかをすぐに発見します。

関連する問題