web-dev-qa-db-ja.com

Nginx proxy_pass応答が切り捨てられました

Nginxを使用して、httpsリクエストを私のアプリケーションサーバー(現在8443で実行中)にプロキシします。
このアプリサーバーは動的ページを提供します。jqueryを含む一部のページは縮小されています。
jqueryが切り捨てられているように見えるため、ページにエラーがあります...ファイルサイズの制限などはありますか?

私のnginx confは次のとおりです:

server {
listen      443;
server_name my_serv.com;
ssl                 on;
ssl_certificate     certificate.pem;
ssl_certificate_key privatekey.pem;

keepalive_timeout 70;

location / {
  proxy_pass https://localhost:8443;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_Host;
  proxy_buffering off;
  proxy_buffers 8 8k;
}
}
9
Luc

この質問は非常に古いものですが、同じ問題に遭遇しました。 nginxを実行しているユーザーに、proxy_tempディレクトリへの書き込み権限があることを確認してください。すべてがproxy_buffersに保持できないプロキシサーバーを介してより大きな応答を提供する場合、残りの応答データは、proxy_tempディレクトリのディスクに書き込まれます。不十分な特権(または何か他のもの、つまりディスク領域)のためにそれができない場合、応答は切り捨てられます。

簡単な方法は、これはブラウザのキャッシュをクリアし、Chrome開発者ツールを開いてページをリロードすることです。ネットワークタブで切り捨てられたファイルを見つけ、サイズが一致するかどうかが問題です。あなたのプロキシバッファサイズ(あなたのケースでは64k)そしてnginxはおそらくディスクへの書き込みに問題を抱えています。

Nginx proxy_temp_pathの詳細: http://wiki.nginx.org/HttpProxyModule#proxy_temp_path

8
Steve

アクセスログに、切り捨てられたファイルの戻りコード304(変更されていない)が表示される場合は、ブラウザーのキャッシュをクリアしてみてください。残念ながら、nginx設定からこれを「修正」する方法を見つけることができませんでした。

0
Marius