Nginx

Nginx 代理在 38 kB 後停止

  • October 6, 2018

我有一個在專用 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;
}

引用自:https://serverfault.com/questions/771148