Ubuntu
nginx 記憶體似乎不適用於 django
我有一些 django 應用程序,我想嘗試使用 NGINX 進行記憶體。我遵循了本指南。https://www.nginx.com/blog/nginx-caching-guide/
我使用該
include
指令在塊中包含具有此行的文件http
…proxy_cache_path /usr/share/nginx/cache levels=1:2 keys_zone=my cache:10m max_size=2g inactive=60m use_temp_path=off;
然後我去了
sites-enabled
文件夾並將其添加到我的伺服器塊中,這些是 ssl 塊……server { listen 443 ssl; server_name example.com; ssl_certificate my/path/to/ssl; ssl_certificate_key my/path/to/ssl; client_max_body_size 4G; keepalive_timeout 5; # Your Django project's media files - amend as required location /media { proxy_cache my_cache; alias /home/example/media; } # your Django project's static files - amend as required location /static { proxy_cache my_cache; alias /home/example/example/static_dump; } location / { #Next two lines added while developing includes only ip's in the file include /etc/nginx/ip-allow.conf; deny all; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_cache my_cache; proxy_pass http://app_server_example; }
當我檢查記憶體文件的路徑時,我看到它創建了一個
./tmp
文件夾,所以我猜權限是正確的,當我重新啟動 nginx 時nginx -s reload
,後來service nginx restart
我再也沒有遇到任何錯誤。為什麼在收到對我的站點的請求後,這些記憶體目錄中不會顯示任何文件?
您的 Django 應用程序很可能會返回不允許記憶體頁面的 HTTP 記憶體標頭。
如果你想忽略 Django 記憶體頭,那麼你可以使用這個:
proxy_ignore_headers X-Accel-Expires Expires Cache-Control;