Nginx

頁面未記憶體

  • August 21, 2016

我有一個使用flask+gunicorn在nginx後面執行的簡單網路應用程序,並且在某個地方正在記憶體頁面的陳舊版本。我的 nginx 配置在代理通行證add_header Cache-Control no-cache;proxy_buffering off;位置。我做了一些搜尋,發現 gunicorn 本身並沒有記憶體任何東西。我的應用程序也沒有記憶體任何東西,或者至少我沒有將它寫入。

server { listen 80; server_name mywebsite.com; location / { add_header Cache-Control no-cache; proxy_pass http://127.0.0.1:6789; proxy_set_header Host $host; proxy_buffering off; } }

這就是我正在使用的 nginx 配置,gunicorn 是使用它啟動的,gunicorn -b 127.0.0.1:6789 -w 5 app:app並且沒有為它設置任何特殊配置。

任何診斷問題的幫助都會很棒。謝謝!

編輯:這是來自返回陳舊頁面的請求的響應標頭。

Age: 0 Cache-Control: no-cache Connection: Keep-Alive Content-Encoding: gzip Content-Type: text/html; charset=utf-8 Date: Mon, 27 Jun 2016 14:27:29 GMT Server: nginx/1.8.0 Transfer-Encoding: chunked

我得出的結論是,由於 gunicorn 創建了工作執行緒,因此一個或多個沒有工作價格更新執行緒並陷入陳舊的結果。我現在只用一名工人執行 gunicorn,這似乎違背了使用它的目的,但無論如何。

發送文件之類的靜態內容?

“返回發送文件(‘mypage.html’)”?

預設情況下,在燒瓶中為我記憶體的那種單線器。

解決方案是:app.config.update(SEND_FILE_MAX_AGE_DEFAULT=0)

我有一個設置,我只在燒瓶中回饋 html 頁面(它們包含角度,所以我不在燒瓶中做任何程式碼。Gunicorn + nginx 用於託管它,nginx 用於非 html 靜態(js、css、字型圖像等) . 設置該選項後沒有記憶體,所以不太可能是你的 gunicorn 或 nginx(但誰知道,我不是他們的專家,也許你有一些其他版本,而不是我,他們記憶體的地方)。所以可能是你的燒瓶,取決於你用它做什麼。我管理著 4 個 gunicorn 工人。

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