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

Прокси-сервер Nginx останавливается после 38 КБ

У меня есть простой прокси nginx 1.4.6, работающий на выделенном сервере Ubuntu 14. Моя конфигурация выглядит так:

server {
    listen 80;
    listen 443 ssl;
    listen [::]:80;
    listen [::]:443 ssl;
    server_name example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    location / {
        proxy_pass http://127.0.0.1:44400;
        proxy_set_header Host $host;proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Когда я пытаюсь достичь этот файл время ожидания истекает после отправки небольшой части. Он всегда останавливается на одной и той же строке.

Бэкэнд работает на сервере Node.js / Koa, файл может быть загружен напрямую без каких-либо проблем.

При загрузке через nginx Коа сообщает об ошибке сломанного канала при попытке записи, поскольку проблема возникает только с nginx, я не думаю, что это вина Коа.

Есть идеи, что я делаю не так?

Сначала проверьте логи nginx. Это помогает вам (и нам) понять ошибку.

tail -f /var/log/nginx/error.log

Возможная проблема - неправильные разрешения (владелец пользователя) для папки nginx tmp

cd /var/lib/nginx/tmp/proxy/ && ls -la

Проверьте конфигурацию nginx на наличие поля "пользователь xxxx" (например, пользователь apache; ")

grep "user " /etc/nginx/*

Найденный пользователь должен быть владельцем каталога nginx tmp. Так, например, если ваш пользователь nginx - apache, а владелец каталогов nginx tmp - другой - измените его на apache.

chown -R apache:apache /var/lib/nginx/*

Также проверьте состояние памяти / диска:

htop

df -h

Надеюсь, это тебе поможет.

А как насчет отправки статического контента прямо из nginx?

location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
    root your/content/root/path;
    error_page 404 = @fallback;
}