uwsgi_cache_path /var/cache/nginx/uwsgi keys_zone=cache:15M max_size=5G;
我的後端樹立了一個很長的使用nginx的緩存請求我uwsgi後端expires頭(1年+)。但是,當我的系統運行時,我發現緩存以15M的速度上升。它達到這個水平,然後修剪到10M。
這導致了很多不必要的電話到我的後端。當我更改keys_zone大小時,它似乎控制整個緩存的大小。它似乎忽略了max_size,而是替換keys_zone的大小。 (*)
任何人都可以解釋這種行爲嗎?這個版本有沒有一個已知的錯誤?我錯過了這一點嗎?我不想5G分配給高速緩存管理器..
# nginx -V
nginx version: nginx/1.2.0
built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
TLS SNI support enabled
configure arguments: --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --user=www-data --group=www-data --with-http_ssl_module --with-http_stub_status_module
(*)更新:我想這是我過度的想象力試圖找到在混亂的模式。
默認情況下,不活動的緩存將在10分鐘後刪除。你可以增加這個數字,看看它是否有所作爲? http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path – 2013-04-09 22:40:24
我想你明白了!把它寫成答案,我會接受它。這些文檔並不是那麼清楚 - 我認爲自從我使用過期的頭部會覆蓋非活動參數。我應該自己嘗試過。 – Julian 2013-04-09 23:28:46
對。 Expires頭文件(以及其他一些頭文件)由nginx負責確定響應是否可緩存,但不用於確定緩存的時間長度。 – 2013-04-10 00:31:09