Nginx
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 的錯。
任何想法我做錯了什麼?
首先檢查nginx日誌。它可以幫助您(和我們)理解錯誤。
tail -f /var/log/nginx/error.log
可能的問題是 nginx tmp 文件夾的權限錯誤(使用者所有者)
cd /var/lib/nginx/tmp/proxy/ && ls -la
檢查 nginx 配置中的欄位“user xxxx”(例如 user apache;”)
grep "user " /etc/nginx/*
找到的使用者必須是 nginx tmp 目錄的所有者。因此,例如,如果您的 nginx 使用者是 apache,並且 nginx tmp dirs 的所有者是另一個 - 將其更改為 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; }