問題タブ [proxytunnel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3602 参照

python - SocketServer rfile.read() が非常に遅い

すべての SSL トラフィックを転送できる HTTPS プロキシを構築しています。これはトランスペアレント トンネリングと呼ばれます。とにかく、Python の socketserver に問題があります。rfile.read() を呼び出すと、戻るのに非常に時間がかかります。I/O の準備ができていることを確認するために select を使用しても、非常に長い時間がかかります。通常は 30 秒で、クライアントのソケットはタイムアウトのために閉じられます。最初にデータを読み取ってから、読み取ったばかりのすべてのデータをリモートサーバーに転送する必要があるため、ソケットのブロックを解除できません。最初にデータを返す必要があります。

私のコードは次のとおりです。

通常の HTTP トラフィックを転送すると、 read() がすぐにデータを返します。しかし、クライアントが SSL トラフィック (バイナリ) を送信するたびに、read() が返されるまでに非常に長い時間がかかります! そして、リクエストソケットがリモートクライアントによって閉じられたときにのみ read() が返すメカニズムがいくつかあると思います。read() を高速にする方法を知っている人はいますか? recv() と readline() を試してみましたが、どちらもバイナリ トラフィックを処理するときに read() と同じくらい遅いです!

0 投票する
1 に答える
960 参照

proxy - ツイストされた deferreds で Errback が発生した場合は Scrapyd を再試行する / CONNECT トンネル エラーを開けませんでした

Scrapy でプロキシのサイクルを使用していますが、一部のプロキシにエラーが発生し、スパイダーが停止することがあります..エラーは「CONNECT トンネルを開けませんでした」です。このエラーの場合、別のプロキシで再試行するようにコードを変更するにはどうすればよいですか? ?

変更する必要があるコードは次のとおりです: https://github.com/scrapy/scrapy/blob/master/scrapy/core/downloader/handlers/http11.py