是否有可能为每个网站/虚拟主机有fastcgi_cache_path?

我在nginx.conf的http块上使用下面的configuration:

fastcgi_cache_path /var/www/nginx_cache levels=1:2 keys_zone=NGINXCACHE:500m inactive=60m; fastcgi_cache_key "$scheme$request_method$host$request_uri"; fastcgi_cache_use_stale error timeout invalid_header http_500; 

这适用于此nginx服务器上托pipe的所有网站。 我想知道是否有可能让每个网站caching文件存储在一个特定的文件夹,如:

  • / TMPFS / fastcgi_cache / WEBSITE1
  • / TMPFS / fastcgi_cache / WEBSITE2

当我daclare多个fastcgi_cache_path的nginx开始给我一个错误,即使在不同的区域。

最好的祝福。

您可以在nginx http上下文中定义多个cachingpath:

 fastcgi_cache_path /var/run/nginx/cache/site1 levels=1:2 keys_zone=SITE1:100m inactive=1w; fastcgi_cache_path /var/run/nginx/cache/site2 levels= keys_zone=SITE2:123m inactive=60m; # other fastcgi_cache_* settings here or in your servers/locations server { server_name site1.com; # blablabla location ~ \.bla$ { # blablabla fastcgi_cache SITE1; } } server { server_name site2.com; # blablabla location ~ \.bla$ { # blablabla fastcgi_cache SITE2; } } 

我的nginx:

 nginx -V nginx version: nginx/1.1.19 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-dav-ext-module 

对于任何跟随https://www.digitalocean.com/community/tutorials/how-to-setup-fastcgi-caching-with-nginx-on-your-vps的用户 ,在为多个网站设置caching时遇到问题,错误nginx: [emerg] "fastcgi_cache_key" directive is duplicate

我的解决scheme是把fastcgi_cache_key "$scheme$request_method$host$request_uri"; 在/etc/nginx/nginx.conf中。 而不是把它放在/ etc / nginx / sites-enabled / vhostconfiguration里,上面的教程暗示。

希望这可以帮助其他人对我有类似的问题。