ฉันใช้งานเว็บไซต์ WordPress ด้วย Nginx
อย่างไรก็ตาม เนื่องจากปัญหาความเข้ากันได้กับปลั๊กอินบางตัว ฟังก์ชันการเข้าสู่ระบบจะไม่ทำงานเฉพาะในหน้าแรกเมื่อเปิดใช้งาน fastcgi
ดังนั้นฉันต้องการปิดใช้งานแคช fastcgi เฉพาะในหน้าแรก
ฉันได้ตั้งค่าskip_cacheแล้วดังที่แสดงด้านล่าง
ตั้ง $skip_cache 0;
ถ้า ($request_method = POST) {
ตั้ง $skip_cache 1;
ตั้ง $skip_reason "โพสต์";
}
ถ้า ($query_string !=" "") {
ตั้ง $skip_cache 1;
ตั้ง $skip_reason "QUERY_STRING";
}
ถ้า ( $cookie_woocommerce_items_in_cart = "1" ){
ตั้ง $skip_cache 1;
ตั้ง $skip_reason WP_WooCommerce;
}
ถ้า ( $cookie_woocommerce_cart_hash = "1" ){
ตั้ง $skip_cache 1;
ตั้ง $skip_reason WP_WooCommerce;
}
ถ้า ( $cookie_wp_woocommerce_session_[a-z0-9] = "1" ){
ตั้ง $skip_cache 1;
ตั้ง $skip_reason WP_WooCommerce;
}
ถ้า ( $cookie_wp_automatewoo_visitor_[a-z0-9] = "1" ){
ตั้ง $skip_cache 1;
ตั้ง $skip_reason automatewoo;
}
ถ้า ( $cookie_wp_automatewoo_session_started = "1" ){
ตั้ง $skip_cache 1;
ตั้ง $skip_reason automatewoo;
}
# กฎการข้ามแคชเฉพาะ WooCommerce
ถ้า ($request_uri ~* "/store.*|/cart.*|/my-account.*|/checkout.*|/addons.*") {
ตั้ง $skip_cache 1;
ตั้ง $skip_reason WP_WooCommerce;
}
ถ้า ( $arg_add-to-cart != "" ) {
ตั้ง $skip_cache 1;
ตั้ง $skip_reason หยิบใส่ตะกร้า;
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wp_automatewoo_session_started|wp_automatewoo_visitor_[a-z0-9]|arlsf_c|wp_automatewoo_[a-z0-9]|yith_wcwl_products|wordpress_no_cache|wordpress_logged_in |woocommerce_items_in_cart|woocommerce_cart_hash|tinv_wishlistkey") {
ตั้ง $skip_cache 1;
ตั้ง $skip_reason คุกกี้;
}
ถ้า ($request_uri ~* "(/thskan/|/my-account/|pum-[a-z0-9]|pum_[a-z0-9]|/checkout/|/cart/|/wp-admin/ |/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links- opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
ตั้ง $skip_cache 1;
ตั้ง $skip_reason ยูริ;
}
ตำแหน่ง ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
ถ้า (!-f $document_root$fastcgi_script_name) {
กลับ 404;
}
fastcgi_read_timeout 300;
fastcgi_pass ยูนิกซ์:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_buffers 64 16k; # เริ่มต้น 8 4k
#ì´ ìëë fastcgi ì¶ê°ë¡ ì ë ¥íê².
fastcgi_buffer_size 32k;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache seoartgallery.com;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock บน;
add_header X-FastCGI-แคช $upstream_cache_status;
add_header WP-Bullet-ข้าม $skip_reason;
fastcgi_cache_valid 404 1m;
fastcgi_cache_valid 500 502 504 5m;
รวม fastcgi_params;
}
แต่ฉันสงสัยว่าจะข้ามแคชเฉพาะในหน้าแรกได้อย่างไร