
nginx.conf의 http 블록에서 다음 구성을 사용하고 있습니다.
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 서버에서 호스팅되는 모든 웹사이트에 적용됩니다. 각 웹사이트 캐시 파일을 다음과 같은 특정 폴더에 저장할 수 있는지 알고 싶습니다.
- /tmpfs/fastcgi_cache/website1
- /tmpfs/fastcgi_cache/website2
여러 fastcgi_cache_path의 nginx 시작을 daclare하면 다른 영역에서도 오류가 발생합니다.
친애하는.
답변1
nginx http
컨텍스트에서 여러 캐시 경로를 정의할 수 있습니다.
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
답변2
팔로우한 사람을 위해https://www.digitalocean.com/community/tutorials/how-to-setup-fastcgi-caching-with-nginx-on-your-vps여러 사이트에 대한 캐싱을 설정하는 데 문제가 있으며 오류가 발생합니다 nginx: [emerg] "fastcgi_cache_key" directive is duplicate
.
내 해결책은 fastcgi_cache_key "$scheme$request_method$host$request_uri";
/etc/nginx/nginx.conf 내에 배치하는 것이었습니다. 위 튜토리얼에서 언급한 /etc/nginx/sites-enabled/vhost 구성에 넣는 것과는 대조적입니다.
이것이 나와 비슷한 문제를 겪고 있는 다른 사람에게 도움이 되기를 바랍니다.