Heim > Artikel > Backend-Entwicklung > Einführung in die Konfiguration des FastCGI-Cache in Nginx
Dieser Artikel bietet Ihnen eine Einführung in die Konfiguration des Fastcgi-Cache in Nginx. Ich hoffe, dass er für Freunde hilfreich ist.
Caching-Mechanismus
Nginx bietet zwei Caching-Methoden basierend auf Proxy (Proxy) und basierend auf Fastcgi. Die Befehlssätze der beiden sind jedoch sehr ähnlich Es gibt keine großen Unterschiede in der Verwendung. Da dieser Blog die Nginx + PHP-FPM-Architektur verwendet, verwendet er Fastcgi-basierten Cache, also Fastcgi-Cache.
Konfiguration
Der Mechanismus des Fastcgi-Cache besteht darin, die vom Back-End-CGI-Dienst zurückgegebene Seite zwischenzuspeichern. Wenn nachfolgende Anforderungen eingehen, wird die Seite direkt zurückgegeben. Dadurch entfällt die Notwendigkeit, mit dem Back-End-Dienst zu kommunizieren und Seiten zu generieren. Das Prinzip des Fastcgi-Cache ähnelt dem von Squid, Lack, CDN usw. Aufgrund der Reduzierung der Back-End-Anfragen ist die Leistung im Prinzip viel höher als bei verschiedenen WordPress-Cache-Plug-Ins.
Der Fastcgi-Cache gehört zum Fastcgi-Modul und das Fastcgi-Modul zum http-Modul. Daher sollten Cache-bezogene Konfigurationen in diesen beiden und untergeordneten Konfigurationsblöcken (hauptsächlich http, Server und Standort) erscheinen.
Laut der offiziellen Dokumentation lautet die von der Blog-Site verwendete Cache-Konfiguration wie folgt:
http { ... fastcgi_connect_timeout 30s; # 全局设置, fastcgi_cache_path只能出现在http配置块中 # fastcgi_cache_path设置全局的缓存路径、文件大小等,可多次出现设置不同的缓存池 fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=WORDPRESS:10m inactive=10m max_size=500m; fastcgi_cache_key $scheme$request_method$host$request_uri; # 设置使用过期缓存的情形:后端错误、超时等 fastcgi_cache_use_stale error timeout invalid_header http_500 http_503; ... server { ... # 缓存策略指示变量 set $skip_cache 0; # 缓存策略 if ($query_string != "") { set $skip_cache 1; } if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|sitemap(_index)?.xml") { set $skip_cache 1; } # 登录用户或发表评论者 if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") { set $skip_cache 1; } location ~ \.php$ { ... # 使用的keyzone,这里使用http中定义的WORDPRESS fastcgi_cache WORDPRESS; # 是否跳过缓存 fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; # 后端返回成功的情况下缓存10分钟 fastcgi_cache_valid 200 10m; # 添加header字段,指示缓存命中状态(调试使用) add_header X-Cache $upstream_cache_status; } } }
Die obige Konfiguration bewirkt Folgendes:
Cache-Pool-Informationen festlegen (fastcgi_cache_path);
Cache-Schlüssel festlegen (fastcgi_cache_key); >Cache-Strategie (fastcgi_cache_bypass/fastcgi_no_cache)
Cache-Zeit wenn die Backend-Anfrage erfolgreich ist (fastcgi_cache_valid)
Debug-Informationsheader hinzugefügt (add_header)
Starten Sie Nginx neu und besuchen Sie dann die Seite, um dies zu überprüfen den Header-Status und die Antwortzeit der Seite. Es ist ersichtlich, dass nach einer Anforderung (die Anzahl kann über
festgelegt werden) nachfolgende Anforderungen aus dem Cache gestellt werden (X-Cache-Wert ist HIT) und die Geschwindigkeitsverbesserung sehr offensichtlich ist. Für die Admin-Backend-Seite ist der Wert vonBedienungsschritte der Nginx-Konfigurationsdatei nginx.conffastcgi_cache_min_uses
x-cache
BYPASS
Das obige ist der detaillierte Inhalt vonEinführung in die Konfiguration des FastCGI-Cache in Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!