我有一个简单的nginx 1.4.6代理在专用的Ubuntu 14服务器上运行。 我的configuration如下所示:
server { listen 80; listen 443 ssl; listen [::]:80; listen [::]:443 ssl; server_name impequid.dodekeract.report; ssl_certificate /etc/letsencrypt/live/impequid.dodekeract.report/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/impequid.dodekeract.report/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在尝试写入时报告了一个坏的pipe道错误,因为问题只发生在nginx上,我不认为这是Koa的错。
任何想法我做错了什么?
首先检查nginx日志。 它可以帮助你(和我们)了解错误。
tail -f /var/log/nginx/error.log
可能的问题是nginx tmp文件夹的权限(用户所有者)不合格
cd /var/lib/nginx/tmp/proxy/ && ls -la
检查nginxconfiguration字段“user xxxx”(例如用户apache;“)
grep "user " /etc/nginx/*
find的用户必须是nginx tmp目录的所有者。 所以,例如,如果你的nginx用户是apache,并且nginx tmp dirs的所有者是anoter – 把它改为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; }