Назад | Перейти на главную страницу

Ответ 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;
}
}

Я знаю, что этот вопрос очень старый, но я столкнулся с той же проблемой. Убедитесь, что пользователь, от имени которого вы запускаете nginx, имеет права записи в каталог proxy_temp. Если вы обслуживаете более крупный ответ через свой прокси-сервер, который не может храниться в ваших proxy_buffers, остальные данные ответа записываются на диск в вашем каталоге proxy_temp. Если это невозможно из-за неадекватных привилегий (или чего-то еще, например, дискового пространства), ответ будет усечен.

Легкий способ определить, заключается ли проблема в том, чтобы очистить кеш браузера и перезагрузить страницу с открытыми инструментами разработчика Chrome. Найдите усеченный файл на вкладке сети, и если размер соответствует размеру вашего прокси-буфера (64 КБ в вашем случае), то, вероятно, у nginx проблемы с записью на диск.

Дополнительная информация о nginx proxy_temp_path: http://wiki.nginx.org/HttpProxyModule#proxy_temp_path

Если в журналах доступа вы видите код возврата 304 (Не изменено) для усеченного файла, попробуйте очистить кеш браузера. К сожалению, я не смог найти способ «исправить» это в конфигурации nginx.

Есть, но по умолчанию его 1G:

http://wiki.nginx.org/HttpProxyModule#proxy_max_temp_file_size

Как сказал @kolbyjack, вероятно, есть ошибки в error.log, чтобы посмотреть.