web-dev-qa-db-ja.com

IIS ARR /リバースプロキシ502のエラーが大きいファイルの場合

Pythonで記述されたAPIがあり、ISAPI拡張PyISAPIeを介してIIS 7.5でアクセスしています。このAPIを私たちのAPIから分離するのが賢明だと思いましたメインサイトなので、ポート8008でアクセスする別のサイトにあります。

http://domain/apiのようなURLでAPIにアクセスできるようにするために、IIS ARRとURL書き換えを使用して、http://domain/apihttp://domain:8008にリダイレクトされるようにリバースプロキシルールを作成しました。

リバースプロキシは正しく機能しているようで、ほとんどの場合、APIから正しい応答を受け取っています(APIはJSONを返します)。ただし、場合によっては、次のメッセージで502エラーが発生します。

502 - Web server received an invalid response while acting as a gateway or proxy server.

これは、JSON応答が特定のサイズ(私のテストでは約125KB)を超えている場合にのみ発生しているようです。サイズが小さい場合は、すべてが正しく機能しているようです。

プロキシ設定のResponse buffer thresholdを増やしてみましたが効果がありません。


追加情報

ログでは、ポート8008のサイトへの要求が成功し、200のステータスコードを返していることがわかります。

Failed Request Tracingをアクティブにした後、エラー/警告は次のとおりです(これは他のサイトからの応答を受信した後です-前のポイントを参照してください):

MODULE_SET_RESPONSE_ERROR_STATUS 
Warning ModuleName="ApplicationRequestRouting",
Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="502", 
HttpReason="Bad Gateway", HttpSubStatus="3",
ErrorCode="2147954552"ConfigExceptionInfo=""
2
Tom--G

Web.configのmaxJsonLength設定を増やす必要があります。許可される値とトラブルシューティングの詳細については、 この質問 on SO)を参照してください。

1
dartonw

ARR(502)およびサイト(200)からの要求トレースを添付できますか?過去にも同様の問題がありましたが、ARRと書き換え中のサイトの設定で maxRequestLength を増やすことで解決したと思います。

1
Dax