Nginx 代理在 38 kB 后停止

Nginx 代理在 38 kB 后停止

我在专用的 Ubuntu 14 服务器上运行了一个简单的 nginx 1.4.6 代理。我的配置如下:

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 加载时,Koa 在尝试写入时报告管道损坏错误,由于该问题仅发生在 nginx 上,所以我不认为这是 Koa 的错误。

知道我做错了什么吗?

答案1

首先检查 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;
}

相关内容