問題タブ [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.
python - SocketServer rfile.read() が非常に遅い
すべての SSL トラフィックを転送できる HTTPS プロキシを構築しています。これはトランスペアレント トンネリングと呼ばれます。とにかく、Python の socketserver に問題があります。rfile.read() を呼び出すと、戻るのに非常に時間がかかります。I/O の準備ができていることを確認するために select を使用しても、非常に長い時間がかかります。通常は 30 秒で、クライアントのソケットはタイムアウトのために閉じられます。最初にデータを読み取ってから、読み取ったばかりのすべてのデータをリモートサーバーに転送する必要があるため、ソケットのブロックを解除できません。最初にデータを返す必要があります。
私のコードは次のとおりです。
通常の HTTP トラフィックを転送すると、 read() がすぐにデータを返します。しかし、クライアントが SSL トラフィック (バイナリ) を送信するたびに、read() が返されるまでに非常に長い時間がかかります! そして、リクエストソケットがリモートクライアントによって閉じられたときにのみ read() が返すメカニズムがいくつかあると思います。read() を高速にする方法を知っている人はいますか? recv() と readline() を試してみましたが、どちらもバイナリ トラフィックを処理するときに read() と同じくらい遅いです!
proxy - ツイストされた deferreds で Errback が発生した場合は Scrapyd を再試行する / CONNECT トンネル エラーを開けませんでした
Scrapy でプロキシのサイクルを使用していますが、一部のプロキシにエラーが発生し、スパイダーが停止することがあります..エラーは「CONNECT トンネルを開けませんでした」です。このエラーの場合、別のプロキシで再試行するようにコードを変更するにはどうすればよいですか? ?
変更する必要があるコードは次のとおりです: https://github.com/scrapy/scrapy/blob/master/scrapy/core/downloader/handlers/http11.py