Ubuntu

nginx 記憶體似乎不適用於 django

  • January 3, 2017

我有一些 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;

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