2017-06-18 16 views
2

ファイルをアップロードするためのフォームを持つ.NETコアアプリケーションがあります。それはIISでうまく動作しますが、UbuntuでNginx(リバースプロキシとして)にデプロイすると、ファイルのアップロードがタイムアウトしたり、ゲートウェイエラーが発生したりします。私はさらに問題を調査することができません、nginxのアクセスログとKestrelの出力はあまり役に立ちません。NGINX + Kestrel - マルチパート/フォームデータのファイルをアップロードできません

は、ここで私はそれがケストレル

location/{ 
    proxy_pass http://dotnet; 
    proxy_set_header Host $host; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_set_header Connection keep-alive; 

にデータを渡していないと思われる、私のnginxの設定ファイルですイライラすることだと、504を与え、小さなファイルのアップロード操作を完了するまでに60秒を取るにもかかわらず、ファイルはまだサーバーに送信されます。

どのようなnginx設定オプションがありますか?私はkestrelがnginxにhttp応答を提供していないと思われます。

答えて

2

私自身の質問に答えるには問題は、ファイルのアップロードを処理していたWebApiの「keep alive」接続ヘッダーが原因です。

私が取り組んでいるプロジェクトは、WebsocketとWebApisを使用しています。一般に、これらの2つのことは一緒に行なわれません。ウェブソケットコードでは一定のサーバ接続が必要です(「keep alive」ヘッダー経由)。 WebApiのレスポンスは、「keep alive」ヘッダーが原因ではありませんでした。私は、WebApiトラフィックを通常の「キープアライブ」として扱うルールを作成し、問題は解決しました。

関連する問題