Відповідь Nginx proxy_pass урізана


9

Я використовую 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;
}
}

2
Перевірте свій журнал помилок. Це повинно вам сказати, чому будь-які з'єднання були закриті рано.
колб'як

Чому ви не дозволите nginx обслуговувати статичні файли, такі як jquery.js?
VBart

Відповіді:


8

Я знаю, що це питання дуже старе, але я просто зіткнувся з тим же питанням. Переконайтеся, що користувач, у якого запущено nginx, має права доступу до каталогу 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 не вріже відповідь, якщо її неможливо все завантажити, вона буде подана синхронно з висхідного потоку.
колб'як
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.