Ответ Nginx proxy_pass урезан


9

Я использую nginx для прокси HTTPS-запроса к моему серверу приложений (в настоящее время работает на 8443).
Этот сервер приложений обслуживает динамические страницы, некоторые из которых включают jquery minified.
Страницы ошибочны, так как кажется, что 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;
}
}

2
Проверьте свой журнал ошибок. Он должен сказать вам, почему какие-либо соединения были закрыты рано.
kolbyjack

Почему бы вам не позволить nginx обслуживать статические файлы, такие как jquery.js?
VBart

Ответы:


8

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

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

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


1
Ваш ответ вдохновил меня на решение аналогичной проблемы
Тайлер Лонг,

0

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


-1

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

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

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


2
Это просто определяет максимальный размер временного файла. nginx не будет усекать ответ, если он не может быть буферизован, он будет обслуживаться синхронно с апстримом.
kolbyjack
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.