頁面未記憶體
我有一個使用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 工人。