{"id":316,"date":"2022-04-01T22:25:57","date_gmt":"2022-04-01T15:25:57","guid":{"rendered":"http:\/\/congdong.longvan.net\/?p=316"},"modified":"2023-06-16T10:42:21","modified_gmt":"2023-06-16T03:42:21","slug":"thiet-lap-nginx-fastcgi-cache-tren-nginx","status":"publish","type":"post","link":"https:\/\/longvan.net\/cong-dong\/thiet-lap-nginx-fastcgi-cache-tren-nginx\/","title":{"rendered":"Thi\u1ebft l\u1eadp Nginx FastCGI Cache tr\u00ean NGINX"},"content":{"rendered":"<div>\n<h5><strong>I. T\u1ed5ng quan<\/strong><\/h5>\n<p>Nginx FastCGI Cache l\u00e0 g\u00ec?<\/p>\n<ul>\n<li>Nh\u01b0 \u0111\u00e3 bi\u1ebft, NGINX r\u1ea5t nhanh khi x\u1eed l\u00fd c\u00e1c trang HTLM t\u0129nh, nh\u01b0ng l\u1ea1i ch\u1eadm khi x\u1eed l\u00fd c\u00e1c m\u00e3 PHP m\u1eb7c d\u00f9 c\u00f3 c\u1ea3i thi\u1ec7n tr\u00ean c\u00e1c phi\u00ean b\u1ea3n PHP m\u1edbi. Khi t\u00ecm th\u1ea5y m\u00e3 PHP trong trang y\u00eau c\u1ea7u, NGINX s\u1ebd chuy\u1ec3n y\u00eau c\u1ea7u \u0111\u1ebfn PHP-FPM \u0111\u1ec3 x\u1eed l\u00fd.<\/li>\n<li>\u0110\u1ec3 gi\u1ea3i quy\u1ebft vi\u1ec7c n\u00e0y, thay v\u00ec chuy\u1ec3n y\u00eau c\u1ea7u trang \u0111\u1ed9ng \u0111\u1ebfn PHP-FPM v\u00e0 \u0111\u1ec3 n\u00f3 t\u1ea1o trang HTML trong m\u1ecdi th\u1eddi \u0111i\u1ec3m, Nginx c\u00f3 th\u1ec3 l\u01b0u v\u00e0o b\u1ed9 nh\u1edb cache trang HTML \u0111\u00e3 t\u1ea1o \u0111\u1ec3 s\u1eed d\u1ee5ng v\u1ec1 sau, qua \u0111\u00f3 t\u0103ng n\u0103ng l\u1ef1c v\u00e0 t\u1ed1c \u0111\u1ed9 x\u1eed l\u00fd c\u1ee7a h\u1ec7 th\u1ed1ng.<\/li>\n<li>FastCGI l\u00e0 giao th\u1ee9c gi\u1eefa Nginx v\u00e0 PHP-FPM ho\u1ea1t \u0111\u1ed9ng nh\u01b0 cache \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 Nginx FastCGI cache.<\/li>\n<\/ul>\n<h5><strong>II. H\u01b0\u1edbng d\u1eabn c\u1ea5u h\u00ecnh FastCGI Cache tr\u00ean NGINX<\/strong><\/h5>\n<ol>\n<li><strong>B\u01b0\u1edbc 1: <\/strong>Ki\u1ec3m tra v\u00e0 disable selinux\n<ul>\n<li>M\u1edf file c\u1ea5u h\u00ecnh selinux b\u1eb1ng l\u00eanh:\n<pre><em># vi \/etc\/selinux\/config<\/em><\/pre>\n<\/li>\n<li>Trong n\u1ed9i dung thay \u0111\u1ed5i d\u00f2ng<br \/>\nSELINUX=enforcing<br \/>\nth\u00e0nh<br \/>\nSELINUX=disabled<\/li>\n<li>L\u01b0u l\u1ea1i file v\u00e0 restart server \u0111\u1ec3 \u00e1p d\u1ee5ng c\u1ea5u h\u00ecnh.<\/li>\n<\/ul>\n<\/li>\n<li><strong>B\u01b0\u1edbc 2: <\/strong>C\u1ea5u h\u00ecnh Nginx\n<ul>\n<li>X\u00e1c \u0111\u1ecbnh file c\u1ea5u h\u00ecnh ch\u00ednh c\u1ee7a nginx, th\u00f4ng th\u01b0\u1eddng \/etc\/nginx\/nginx.conf . Qu\u00fd kh\u00e1ch c\u00f3 th\u1ec3 ki\u1ec3m tra ch\u00ednh x\u00e1c v\u1ecb tr\u00ed file c\u1ea5u h\u00ecnh b\u1eb1ng l\u1ec7nh:\n<pre># nginx -T | grep configuration<\/pre>\n<\/li>\n<li>Thay \u0111\u1ed5i c\u1ea5u h\u00ecnh file v\u1edbi l\u1ec7nh:\n<pre># vi \/etc\/nginx\/nginx.conf<\/pre>\n<\/li>\n<li>Trong ph\u1ea7n c\u1ea5u h\u00ecnh http, th\u00eam v\u00e0o c\u00e1c d\u00f2ng sau:\n<pre><em>fastcgi_cache_path \/usr\/share\/nginx\/fastcgi_cache levels=1:2 keys_zone=phpcache:100m max_size=10g inactive=60m use_temp_path=off;<\/em>\n<em><em><em>fastcgi_cache_key \"$scheme$request_method$host$request_uri\";<\/em><\/em><\/em><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/longvan.net\/cong-dong\/wp-content\/uploads\/2022\/02\/image-1639042059107.png\" alt=\"image-1639042059107.png\" \/><\/li>\n<li>Trong \u0111\u00f3:\n<ul>\n<li>\n<ul>\n<li><strong>fastcgi_cache_path<\/strong>: ch\u1ec9 \u0111\u1ecbnh v\u1ecb tr\u00ed l\u01b0u tr\u1eef cache trong h\u1ec7 th\u1ed1ng.<\/li>\n<li><strong>levels<\/strong>: s\u1ebd x\u00e1c \u0111\u1ecbnh ph\u00e2n c\u1ea5p c\u1ee7a b\u1ed9 nh\u1edb cache trong th\u01b0 m\u1ee5c l\u01b0u tr\u1eef (th\u00f4ng th\u01b0\u1eddng 1:2). N\u1ebfu kh\u00f4ng thi\u1ebft l\u1eadp, Nginx s\u1ebd \u0111\u1ea9y to\u00e0n b\u1ed9 c\u00e1c file v\u00e0 c\u00f9ng m\u1ed9t th\u01b0 m\u1ee5c.<\/li>\n<li><strong>keys_zone<\/strong>: thi\u1ebft l\u1eadp v\u00f9ng nh\u1edb chia s\u1ebd (phpcache) v\u00e0 k\u00edch th\u01b0\u1edbc. V\u00f9ng nh\u1edb s\u1ebd l\u01b0u tr\u1eef c\u00e1c kh\u00f3a cache v\u00e0 metadata nh\u01b0 th\u1eddi gian s\u1eed d\u1ee5ng. 1 MB zone c\u00f3 th\u1ec3 l\u01b0u tr\u1eef kho\u1ea3n 8000 key.<\/li>\n<li><strong>max_size<\/strong> \u0111\u1eb7t gi\u1edbi h\u1ea1n tr\u00ean c\u1ee7a k\u00edch th\u01b0\u1edbc b\u1ed9 nh\u1edb \u0111\u1ec7m (trong v\u00ed d\u1ee5 n\u00e0y l\u00e0 10GB). N\u1ebfu kh\u00f4ng \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh, b\u1ed9 \u0111\u1ec7m c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng t\u1ea5t c\u1ea3 dung l\u01b0\u1ee3ng \u1ed5 \u0111\u0129a c\u00f2n l\u1ea1i. Khi b\u1ed9 nh\u1edb cache \u0111\u1ea1t \u0111\u1ebfn k\u00edch th\u01b0\u1edbc t\u1ed1i \u0111a, tr\u00ecnh qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb cache Nginx s\u1ebd x\u00f3a c\u00e1c t\u1ec7p \u00edt \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng g\u1ea7n \u0111\u00e2y nh\u1ea5t kh\u1ecfi b\u1ed9 nh\u1edb cache.<\/li>\n<li><strong>inactive<\/strong>=60m D\u1eef li\u1ec7u ch\u01b0a \u0111\u01b0\u1ee3c truy c\u1eadp trong kho\u1ea3ng th\u1eddi gian kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng (60 ph\u00fat) s\u1ebd b\u1ecb tr\u00ecnh qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb \u0111\u1ec7m x\u00f3a kh\u1ecfi b\u1ed9 nh\u1edb cache, b\u1ea5t k\u1ec3 n\u00f3 \u0111\u00e3 h\u1ebft h\u1ea1n hay ch\u01b0a. Gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh l\u00e0 10 ph\u00fat. B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c gi\u00e1 tr\u1ecb nh\u01b0 12h(12 gi\u1edd) v\u00e0 7d(7 ng\u00e0y).<\/li>\n<li>Tr\u01b0\u1edbc ti\u00ean, Nginx ghi c\u00e1c t\u1ec7p \u0111\u01b0\u1ee3c \u0111\u1ecbnh s\u1eb5n cho b\u1ed9 nh\u1edb cache v\u00e0o v\u00f9ng l\u01b0u tr\u1eef t\u1ea1m ( \/var\/lib\/nginx\/fastcgi\/). T\u00f9y ch\u1ecdn <strong>use_temp_path=off<\/strong> y\u00eau c\u1ea7u Nginx ghi ch\u00fang tr\u1ef1c ti\u1ebfp v\u00e0o th\u01b0 m\u1ee5c cache cu\u1ed1i c\u00f9ng \u0111\u1ec3 tr\u00e1nh vi\u1ec7c copy d\u1eef li\u1ec7u kh\u00f4ng c\u1ea7n thi\u1ebft.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>B\u01b0\u1edbc 3: <\/strong>C\u1ea5u h\u00ecnh FastCGI Cache tr\u00ean domain\n<ul>\n<li>X\u00e1c \u0111\u1ecbnh file c\u1ea5u h\u00ecnh domain c\u1ea7n c\u1ea5u h\u00ecnh fastcgi cache. Th\u00f4ng th\u01b0\u1eddng, file c\u1ea5u h\u00ecnh s\u1ebd n\u1eb1m trong th\u01b0 m\u1ee5c \/etc\/nginx\/conf.d\/[domain_name].conf<\/li>\n<li>Trong v\u00ed d\u1ee5 n\u00e0y, Long V\u00e2n s\u1eed d\u1ee5ng domain <strong>my-domain.com<\/strong>. D\u00f9ng tr\u00ecnh so\u1ea1n th\u1ea3o VIM \u0111\u1ec3 m\u1edf file c\u1ea5u h\u00ecnh v\u1edbi l\u1ec7nh:<br \/>\nvi \/etc\/nginx\/conf.d\/my-domain.conf<\/li>\n<li>Th\u00eam c\u00e1c d\u00f2ng sau v\u00e0o b\u00ean trong block\u00a0<strong>location ~ .php$<\/strong>nh\u01b0 sau:\n<pre><em>fastcgi_cache phpcache;\n<\/em><em>fastcgi_cache_valid 200 301 302 60m;<\/em>\n<em>fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;<\/em>\n<em>fastcgi_cache_min_uses 1;<\/em>\n<em><em>fastcgi_cache_lock on;<\/em><\/em><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/longvan.net\/cong-dong\/wp-content\/uploads\/2022\/02\/image-1639042818814.png\" alt=\"image-1639042818814.png\" \/><\/li>\n<li><strong>Trong \u0111\u00f3:<\/strong>\n<ul>\n<li><strong>fastcgi_cache<\/strong><strong>: <\/strong>thi\u1ebft l\u1eadp v\u00f9ng nh\u1edb chia s\u1ebd \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ea1o ra tr\u01b0\u1edbc \u0111\u00f3 \u1edf ch\u1ec9 th\u1ecb <strong>fastcgi_cache_path<\/strong><\/li>\n<li><strong>fastcgi_cache_valid 200 301 302 60m<\/strong>: Thi\u1ebft l\u1eadp th\u1eddi gian cache tu\u1ef3 thu\u1ed9c v\u00e0o m\u00e3 trang th\u00e1i HTTP. Trong b\u00e0i vi\u1ebft n\u00e0y c\u00e1c ph\u1ea3n h\u1ed3i c\u00f3 m\u00e3 tr\u1ea1ng th\u00e1i 200, 301, 302 th\u00ec s\u1ebd l\u01b0u v\u00e0o cache trong 60 ph\u00fat (B\u1ea1n c\u00f3 th\u1ec3 tu\u1ef3 ch\u1ecdn theo ng\u00e0y ho\u1eb7c gi\u1edd v\u00ed d\u1ee5 l\u00e0 24h, 7d).<\/li>\n<li><strong>fastcgi_cache_min_uses<\/strong><strong> 1<\/strong><strong>: <\/strong>\u0111\u1eb7t s\u1ed1 l\u1ea7n m\u1ed9t trang (items) \u0111\u01b0\u1ee3c ng\u01b0\u1eddi d\u00f9ng cu\u1ed1i y\u00eau c\u1ea7u tr\u01b0\u1edbc khi Nginx l\u01b0u v\u00e0o b\u1ed9 nh\u1edb cache.\u00a0Gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh l\u00e0 1.<\/li>\n<li><strong>fastcgi_cache_lock<\/strong><strong> on<\/strong>: n\u1ebfu nhi\u1ec1u m\u00e1y kh\u00e1ch y\u00eau c\u1ea7u m\u1ed9t t\u1ec7p kh\u00f4ng c\u00f3 trong b\u1ed9 nh\u1edb cache, th\u00ec ch\u1ec9 y\u00eau c\u1ea7u \u0111\u1ea7u ti\u00ean trong s\u1ed1 nh\u1eefng y\u00eau c\u1ea7u \u0111\u00f3 \u0111\u01b0\u1ee3c ph\u00e9p chuy\u1ec3n t\u1edbi m\u00e1y ch\u1ee7 PHP-FPM ng\u01b0\u1ee3c d\u00f2ng. C\u00e1c y\u00eau c\u1ea7u c\u00f2n l\u1ea1i \u0111\u1ee3i y\u00eau c\u1ea7u \u0111\u00f3 \u0111\u01b0\u1ee3c \u0111\u00e1p \u1ee9ng v\u00e0 sau \u0111\u00f3 k\u00e9o t\u1ec7p t\u1ea1o th\u00e0nh b\u1ed9 nh\u1edb cache. N\u1ebfu kh\u00f4ng (<strong>off<\/strong>) t\u1ea5t c\u1ea3 c\u00e1c y\u00eau c\u1ea7u s\u1ebd chuy\u1ec3n th\u1eb3ng \u0111\u1ebfn m\u00e1y ch\u1ee7 PHP-FPM.<\/li>\n<li><strong>add_header X-FastCGI-Cache $upstream_cache_status:\u00a0<\/strong>D\u00f2ng n\u00e0y \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e1c nh\u1eadn xem c\u00e1c y\u00eau c\u1ea7u \u0111\u00e3 \u0111\u01b0\u1ee3c ph\u1ee5c v\u1ee5 t\u1eeb b\u1ed9 nh\u1edb cache FastCGI hay ch\u01b0a.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>B\u01b0\u1edbc 4: <\/strong>Reload l\u1ea1i c\u1ea5u h\u00ecnh NGINX\n<ul>\n<li>Ki\u1ec3m tra l\u1ea1i c\u1ea5u h\u00ecnh Nginx b\u1eb1ng l\u1ec7nh\n<pre>sudo nginx \u2013t<\/pre>\n<\/li>\n<li>\u0110\u1ea3m b\u1ea3o k\u1ebft qu\u1ea3 c\u1ea5u h\u00ecnh th\u00e0nh c\u00f4ng (successful). Sau \u0111\u00f3, th\u1ef1c hi\u1ec7n reload c\u1ea5u h\u00ecnh nginx b\u1eb1ng l\u1ec7nh:\n<pre>sudo systemctl reload nginx<\/pre>\n<p>ho\u1eb7c<\/p>\n<pre>sudo service nginx reload<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>B\u01b0\u1edbc 5: <\/strong>Ki\u1ec3m tra NGINX FastCGI Cache\n<ul>\n<li>Truy c\u1eadp website b\u1eb1ng l\u1ec7nh (c\u00f3 th\u1ec3 tr\u00ean linux ho\u1eb7c command promt tr\u00ean windows):\n<pre># curl -I http:\/\/my-domain.com<\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/longvan.net\/cong-dong\/wp-content\/uploads\/2022\/02\/image-1639043093815.png\" alt=\"image-1639043093815.png\" \/><\/li>\n<li>Reload l\u1ea1i website \u0111\u1ec3 Nginx th\u1ef1c hi\u1ec7n vi\u1ec7c cache.<\/li>\n<li>Theo d\u00f5i header X-FastCGI-Cache, k\u1ebft qu\u1ea3 nh\u1eadn \u0111\u01b0\u1ee3c l\u00e0 HIT cho bi\u1ebft website \u0111\u00e3 \u0111\u01b0\u1ee3c ph\u1ea3n h\u1ed3i t\u1eeb b\u1ed9 nh\u1edb cache<br \/>\n<img decoding=\"async\" src=\"https:\/\/longvan.net\/cong-dong\/wp-content\/uploads\/2022\/02\/image-1639043116741.png\" alt=\"image-1639043116741.png\" \/><\/li>\n<\/ul>\n<\/li>\n<li><strong>B\u01b0\u1edbc 6: <\/strong>B\u1ed5 sung c\u1ea5u h\u00ecnh n\u1ed9i dung kh\u00f4ng l\u01b0u cache.\n<ul>\n<li>Trong file c\u1ea5u h\u00ecnh domain, thi\u1ebft l\u1eadp 2 directive sau trong <strong>location ~ .php$<\/strong>\n<pre><em>fastcgi_cache_bypass $skip_cache;<\/em><\/pre>\n<p>&gt; chuy\u1ec3n tr\u1ef1c ti\u1ebfp y\u00eau c\u1ea7u v\u00e0o PHP-FPM thay v\u00ec t\u00ecm trong b\u1ed9 nh\u1edb cache.<\/p>\n<pre><em>fastcgi_no_cache $skip_cache;<\/em><\/pre>\n<p>&gt; y\u00eau c\u1ea7u NGNIX kh\u00f4ng l\u01b0u ph\u1ea3n h\u1ed3i v\u00e0o b\u1ed9 nh\u1edb cache.<\/li>\n<li>C\u00e1c phi\u00ean \u0111\u0103ng nh\u1eadp, cookie, POST request, chu\u1ed7i truy v\u1ea5n, WordPress back-end, s\u01a1 \u0111\u1ed3 trang web (sitemap), feeds v\u00e0 command author (wordpress) kh\u00f4ng n\u00ean l\u01b0u v\u00e0o b\u1ed9 nh\u1edb \u0111\u1ec7m. Trong file c\u1ea5u h\u00ecnh c\u1ee7a domain, th\u00eam c\u00e1c d\u00f2ng b\u00ean d\u01b0\u1edbi \u1edf <strong><strong><strong><strong>location ~ .php$<\/strong><\/strong><\/strong><\/strong><em>set $skip_cache 0;<\/em>\n<pre><em># c\u00e1c POST request ho\u1eb7c c\u00e1c url v\u1edbi chu\u1ed7i truy v\u1ea5n lu\u00f4n chuy\u1ec3n tr\u1ef1c ti\u1ebfp \u0111\u1ebfn PHP<\/em>\n<em>if ($request_method = POST) {<\/em>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 set $skip_cache 1;<\/em>\n<em>}<\/em>\n<em>if ($query_string != \"\") {<\/em>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 set $skip_cache 1;<\/em>\n<em>}\n# kh\u00f4ng cache wordpress back-end, sitemap\n<\/em><em>if ($request_uri ~* \"\/wp-admin\/|\/xmlrpc.php|wp-.*.php|^\/feed\/*|\/tag\/.*\/feed\/*|index.php|\/.*sitemap.*.(xml|xsl)\") {<\/em>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 set $skip_cache 1;<\/em>\n<em>}<\/em><em># kh\u00f4ng cache logged in users ho\u1eb7c recent commenters trong wordpress<\/em>\n<em>if ($http_cookie ~* \"comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in\") {<\/em>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 set $skip_cache 1;<\/em>\n<em>}<\/em><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/longvan.net\/cong-dong\/wp-content\/uploads\/2022\/02\/image-1639045076982.png\" alt=\"image-1639045076982.png\" \/><\/li>\n<li>Ngo\u00e0i ra, \u0111\u1ec3 b\u1ecf qua vi\u1ec7c cache \u0111\u1ed1i v\u1edbi m\u1ed9t IP ho\u1eb7c m\u1ed9t range IP nh\u1eb1m m\u1ee5c \u0111\u00edch ri\u00eang nh\u01b0 ki\u1ec3m tra t\u1ed1c \u0111\u1ed9 v\u1edbi m\u1ed9t website c\u1ee5 th\u1ec3 c\u00f3 th\u1ec3 th\u00eam c\u1ea5u h\u00ecnh nh\u01b0 sau v\u00e0o\u00a0<strong><strong><strong>location ~ .php$<br \/>\n<\/strong><\/strong><\/strong><\/p>\n<pre><em>if ($remote_addr ~* \"103.34.56.78|103.34.56.79|104.34.55..*) {<\/em>\n<em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 set $skip_cache 1; <\/em>\n<em>}<\/em><\/pre>\n<\/li>\n<li>Theo \u0111\u00f3, bi\u1ec3u t\u01b0\u1ee3ng d\u1ea5u ng\u00e3 ( ~) cho Nginx bi\u1ebft r\u1eb1ng nh\u1eefng g\u00ec sau \u0111\u00e2y l\u00e0 m\u1ed9t bi\u1ec3u th\u1ee9c ch\u00ednh quy (regex). Bi\u1ec3u t\u01b0\u1ee3ng ng\u00f4i sao (*) gi\u00fap ph\u00e2n bi\u1ec7t ch\u1eef hoa ch\u1eef th\u01b0\u1eddng regex. Thanh d\u1ecdc (|) l\u00e0 \u0111\u1ec3 thay th\u1ebf m\u1ed9t s\u1ed1 gi\u00e1 tr\u1ecb. N\u1ebfu gi\u00e1 tr\u1ecb c\u1ee7a bi\u1ebfn $ remote_addr kh\u1edbp v\u1edbi b\u1ea5t k\u1ef3 \u0111\u1ecba ch\u1ec9 IP n\u00e0o trong regex, th\u00ec h\u00e3y \u0111\u1eb7t gi\u00e1 tr\u1ecb c\u1ee7a $ ignore_cache th\u00e0nh 1.<\/li>\n<li>Cu\u1ed1i c\u00f9ng, reload l\u1ea1i c\u1ea5u h\u00ecnh Nginx v\u00e0 ki\u1ec3m tra Nginx FastCGI Cache nh\u01b0 \u1edf b\u01b0\u1edbc 4,5<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Nh\u01b0 v\u1eady, Long V\u00e2n \u0111\u00e3 ho\u00e0n th\u00e0nh h\u01b0\u1edbng d\u1eabn c\u00e1c b\u1ea1n c\u1ea5u h\u00ecnh Nginx FastCGI Cache tr\u00ean NGINX. Ch\u00fac c\u00e1c b\u1ea1n th\u00e0nh c\u00f4ng .<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I. T\u1ed5ng quan Nginx FastCGI Cache l\u00e0 g\u00ec? Nh\u01b0 \u0111\u00e3 bi\u1ebft, NGINX r\u1ea5t nhanh khi x\u1eed l\u00fd c\u00e1c trang HTLM t\u0129nh, nh\u01b0ng l\u1ea1i ch\u1eadm khi x\u1eed l\u00fd c\u00e1c m\u00e3 PHP m\u1eb7c d\u00f9 c\u00f3 c\u1ea3i thi\u1ec7n tr\u00ean c\u00e1c phi\u00ean b\u1ea3n PHP m\u1edbi. Khi t\u00ecm th\u1ea5y m\u00e3 PHP trong trang y\u00eau c\u1ea7u, NGINX s\u1ebd chuy\u1ec3n y\u00eau c\u1ea7u [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_oasis_is_in_workflow":0,"_oasis_original":0,"footnotes":""},"categories":[40],"tags":[],"class_list":["post-316","post","type-post","status-publish","format-standard","hentry","category-web-hosting"],"_links":{"self":[{"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/posts\/316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/comments?post=316"}],"version-history":[{"count":9,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/posts\/316\/revisions"}],"predecessor-version":[{"id":2529,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/posts\/316\/revisions\/2529"}],"wp:attachment":[{"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/media?parent=316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/categories?post=316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/tags?post=316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}