{"id":766,"date":"2022-09-28T16:56:27","date_gmt":"2022-09-28T08:56:27","guid":{"rendered":"https:\/\/www.jchj.top\/?p=766"},"modified":"2025-09-26T11:25:38","modified_gmt":"2025-09-26T03:25:38","slug":"%e5%bc%80%e5%90%afnginx%e9%ab%98%e9%80%9f%e4%bd%8e%e8%80%97fastcgi_cache%e7%bc%93%e5%ad%98%e5%8a%a0%e9%80%9f","status":"publish","type":"post","link":"https:\/\/www.jchj.top\/?p=766","title":{"rendered":"\u5f00\u542fNginx\u9ad8\u901f\u4f4e\u8017fastcgi_cache\u7f13\u5b58\u52a0\u901f"},"content":{"rendered":"\n<p>\u9ad8\u5e76\u53d1\u7f51\u7ad9\u67b6\u6784\u7684\u6838\u5fc3\u539f\u5219\u5176\u5b9e\u5c31\u4e00\u53e5\u8bdd&#8221;\u628a\u6240\u6709\u7684\u7528\u6237\u8bbf\u95ee\u8bf7\u6c42\u90fd\u5c3d\u91cf\u5f80\u524d\u63a8&#8221;\uff0c\u5373\uff1a\u80fd\u7f13\u5b58\u5728\u7528\u6237\u7535\u8111\u672c\u5730\u7684\uff0c\u5c31\u4e0d\u8981\u8ba9\u4ed6\u53bb\u8bbf\u95eeCDN\u3002 \u80fd\u7f13\u5b58CDN\u670d\u52a1\u5668\u4e0a\u7684\uff0c\u5c31\u4e0d\u8981\u8ba9CDN\u53bb\u8bbf\u95ee\u6e90\uff08\u9759\u6001\u670d\u52a1\u5668\uff09\u4e86\u3002\u80fd\u8bbf\u95ee\u9759\u6001\u670d\u52a1\u5668\u7684\uff0c\u5c31\u4e0d\u8981\u53bb\u8bbf\u95ee\u52a8\u6001\u670d\u52a1\u5668\u3002\u4ee5\u6b64\u7c7b\u63a8\uff1a\u80fd\u4e0d\u8bbf\u95ee\u6570\u636e\u5e93\u548c\u5b58\u50a8\u5c31\u4e00\u5b9a\u4e0d\u8981\u53bb\u8bbf\u95ee\u6570\u636e\u5e93\u548c\u5b58\u50a8\u3002<\/p>\n\n\n\n<p>\u5728\u4e3b\u914d\u7f6e\u6587\u4ef6(nginx.conf)\u4e2d\u6dfb\u52a0\u7f13\u5b58\u57df<\/p>\n\n\n\n<p>astcgi_cache_path&nbsp; \/data\/nginx\/fcgicache levels=1:2 keys_zone=fcache:10m max_size=2g inactive=1d\uff1b<\/p>\n\n\n\n<p>fastcgi_cache_path:\u7f13\u5b58\u6587\u4ef6\u7684\u8def\u5f84\uff0c\/dev\/shm\/\u4e3atmfs\u7f13\u5b58\u6587\u4ef6\u7cfb\u7edf\uff0c<\/p>\n\n\n\n<p>\u5b9e\u9645\u50a8\u5b58\u5728\u5185\u5b58\u4e2d\uff0c\u6240\u4ee5\u8bfb\u5199IO\u6027\u80fd\u66f4\u9ad8\u3002<\/p>\n\n\n\n<p>levels:\u7f13\u5b58\u76ee\u5f55\u7684\u7ed3\u6784\u5c42\u6b21\uff0c\u4f8b\u59821:2\uff0c\u7f13\u5b58\u6587\u4ef6\u4f1a\u5c31\u751f\u6210\u5728\u6307\u5b9a\u76ee\u5f55\u7684\u518d\u4e0b\u4e24\u5c42\u76ee\u5f55\u4e2d\u3002<\/p>\n\n\n\n<p>keys_zone:\u7f13\u5b58\u57df\u540d\u79f0\uff0c\u5728vhost\u5185\u8fdb\u884c\u7f13\u5b58\u65f6\u9700\u8981\u8c03\u7528\u3002<\/p>\n\n\n\n<p>inactive:\u7f13\u5b58\u4e0d\u6d3b\u52a8\u65f6\u95f4\uff0c\u82e5\u7f13\u5b58\u5185\u5bb9\u5728\u6307\u5b9a\u65f6\u95f4\u5185\u672a\u88ab\u8bbf\u95ee\u5c06\u4f1a\u88ab\u6e05\u7406\u51fa\u7f13\u5b58\u57df\u3002<\/p>\n\n\n\n<p>2. \u7ad9\u70b9\u914d\u7f6e\uff08\u7136\u540e\u5728\u914d\u7f6e\u4e2d\u7684server\u7684location\u4e2d\u52a0\u5165\uff09<\/p>\n\n\n\n<p>location \/archives\/ {<\/p>\n\n\n\n<p>fastcgi_pass 127.0.0.1:9000;<\/p>\n\n\n\n<p>fastcgi_param SCRIPT_FILENAME \/data\/webroot\/$fastcgi_script_name;<\/p>\n\n\n\n<p>include fastcgi_params;<\/p>\n\n\n\n<p>fastcgi_cache fcache;<\/p>\n\n\n\n<p>fastcgi_cache_methods GET HEAD;<\/p>\n\n\n\n<p>fastcgi_cache_key $request_method$host$request_uri;<\/p>\n\n\n\n<p>fastcgi_cache_valid 200 302 10m;<\/p>\n\n\n\n<p>fastcgi_cache_valid 301&nbsp;&nbsp;&nbsp;&nbsp; 1h;<\/p>\n\n\n\n<p>fastcgi_cache_valid any&nbsp;&nbsp;&nbsp;&nbsp; 1m;<\/p>\n\n\n\n<p>fastcgi_ignore_headers Cache-Control Expires Set-Cookie;<\/p>\n\n\n\n<p>add_header X-Cache \u201c$upstream_cache_status\u201d;<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>fastcgi_cache:\u6307\u5b9a\u7f13\u5b58\u57df<\/p>\n\n\n\n<p>fastcgi_cache_methods\uff1a\u6307\u5b9a\u7f13\u5b58\u7684\u8bf7\u6c42\u65b9\u5f0f<\/p>\n\n\n\n<p>fastcgi_cache_key\uff1a\u6307\u5b9a\u7f13\u5b58\u6587\u4ef6\u7684\u6807\u8bc6\uff0c\u8fd9\u4e2a\u6807\u8bc6\u4f1aMD5\u8f6c\u7801\u5b58\u50a8\u5728\u7f13\u5b58\u57df\u7684\u76ee\u5f55\u4e0b<\/p>\n\n\n\n<p>fastcgi_cache_valid\uff1a\u6307\u5b9a\u7f13\u5b58\u72b6\u6001\uff0c\u4f8b\u5982\u4e0a\u6587\u4e2d\u53ea\u7f13\u5b58\u54cd\u5e94\u72b6\u6001\u7801\u4e3a200\u548c302\u7684\u8bf7\u6c42\u6240\u4ea7\u751f\u7684\u8fd4\u56de\u9875\u976210\u5206\u949f<\/p>\n\n\n\n<p>fastcgi_ignore_headers\uff1a\u9ed8\u8ba4\u60c5\u51b5\u4e0bfastcgi_cache\u4f1a\u5ffd\u7565\u6709\u7279\u6b8aheader\u7684\u8bf7\u6c42\uff0c\u5e76\u4e0d\u8fdb\u884c\u7f13\u5b58\uff0c\u5b98\u7f51\u8bf4\u660e\u3002\u4f46\u5f53\u6211\u4eec\u6dfb\u52a0\u8fd9\u4e2a\u53c2\u6570\u540e\uff0c\u8fd9\u4e9b\u9650\u5236\u5c06\u4e0d\u5728\u5b58\u5728\u3002<\/p>\n\n\n\n<p>add_header \u5c06\u4f1a\u5728\u8fd4\u56de\u8bf7\u6c42\u7684response\u7684header\u4e2d\u6dfb\u52a0\u4e00\u4e2aX-Cache\u5b57\u6bb5\u8868\u793a\u662f\u5426\u8fdb\u884c\u4e86\u7f13\u5b58\u3002\u5982\u679c\u9700\u8981\u4e5f\u53ef\u4ee5\u5728nginx\u65e5\u5fd7\u4e2d\u901a\u8fc7log_format\u6dfb\u52a0$upstream_cache_status\u5b57\u6bb5<\/p>\n\n\n\n<p>\u00b7MISS \u672a\u547d\u4e2d\uff0c\u8bf7\u6c42\u88ab\u4f20\u9001\u5230\u540e\u7aef<\/p>\n\n\n\n<p>\u00b7HIT \u7f13\u5b58\u547d\u4e2d<\/p>\n\n\n\n<p>\u00b7EXPIRED \u7f13\u5b58\u5df2\u7ecf\u8fc7\u671f\u8bf7\u6c42\u88ab\u4f20\u9001\u5230\u540e\u7aef<\/p>\n\n\n\n<p>\u00b7UPDATING \u6b63\u5728\u66f4\u65b0\u7f13\u5b58\uff0c\u5c06\u4f7f\u7528\u65e7\u7684\u5e94\u7b54<\/p>\n\n\n\n<p>\u00b7STALE \u540e\u7aef\u5c06\u5f97\u5230\u8fc7\u671f\u7684\u5e94\u7b54<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1677\" height=\"999\" src=\"https:\/\/www.jchj.top\/wp-content\/uploads\/2022\/09\/1-24.png\" alt=\"\" class=\"wp-image-767\"\/><\/figure>\n\n\n\n<p>fastcgi_keep_conn on; \u5f00\u542f\u4fdd\u6301\u8fde\u63a5,\u6027\u80fd\u4e5f\u6709\u4e00\u5b9a\u7684\u52a0\u901f\u4f5c\u7528.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1418\" height=\"1447\" src=\"https:\/\/www.jchj.top\/wp-content\/uploads\/2022\/09\/2-24.png\" alt=\"\" class=\"wp-image-768\"\/><\/figure>\n\n\n\n<p>\u4f7f\u7528ab\u5de5\u5177\u538b\u6d4b\u7f51\u7ad9\uff0c1\uff1a\u53ef\u4ee5\u6d4b\u8bd5\u518d\u6ca1\u6709\u7f13\u5b58\u4e4b\u524d\u7684\u8bbf\u95ee\u901f\u5ea6\uff0c2\uff1a\u770b\u770b\u7f13\u5b58\u662f\u5426\u751f\u6548\u4ee5\u53ca\u751f\u6548\u540e\u7684\u8bbf\u95ee\u901f\u5ea6\u662f\u5426\u6709\u63d0\u5347\u3002<\/p>\n\n\n\n<p>\u00a0Ab\u538b\u6d4b\u540e\u5df2\u7ecf\u53c8\u7f13\u5b58\u6570\u636e\u4e86<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"865\" height=\"699\" src=\"https:\/\/www.jchj.top\/wp-content\/uploads\/2022\/09\/3-23.png\" alt=\"\" class=\"wp-image-769\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1263\" height=\"391\" src=\"https:\/\/www.jchj.top\/wp-content\/uploads\/2022\/09\/4-22.png\" alt=\"\" class=\"wp-image-770\"\/><\/figure>\n\n\n\n<p>Nginx\u5185\u7f6eFastCgi\u7f13\u5b58\u662f\u4e0d\u652f\u6301\u81ea\u52a8\u6e05\u9664\u7f13\u5b58\u66f4\u65b0\u7f13\u5b58\uff0c\u5982\u679c\u662f<a>WordPress\u7a0b\u5e8f<\/a>\u7684\u53ef\u4ee5\u4f7f\u7528Nginx Helper\u63d2\u4ef6\uff0c\u4e13\u4e3awordpress\u7684nginx fastcgi_cache\u7f13\u5b58\u66f4\u65b0\u800c\u5f00\u53d1\u7684\u63d2\u4ef6\u3002<\/p>\n\n\n\n<p>WordPress\u7a0b\u5e8f\u5b89\u88c5\u4f7f\u7528Nginx Helper\u63d2\u4ef6\u81ea\u52a8\u6e05\u9664\u66f4\u65b0\u7f13\u5b58<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"894\" src=\"https:\/\/www.jchj.top\/wp-content\/uploads\/2022\/09\/5-20.png\" alt=\"\" class=\"wp-image-771\"\/><\/figure>\n\n\n\n<p>\u5b89\u88c5Nginx ngx_cache_purge\u6a21\u5757<\/p>\n\n\n\n<p>1\uff1a\u5b89\u88c5Nginx ngx_cache_purge\u6a21\u5757<\/p>\n\n\n\n<p>\u67e5\u770bngx_cache_purge\u662f\u5426\u5b89\u88c5<\/p>\n\n\n\n<p>nginx -V 2&gt;&amp;1 | grep -o ngx_cache_purge<\/p>\n\n\n\n<p>\u663e\u793angx_cache_purge\u8868\u793a\u5df2\u7ecf\u5b89\u88c5<\/p>\n\n\n\n<p>wget http:\/\/labs.frickle.com\/files\/ngx_cache_purge-2.3.tar.gz<\/p>\n\n\n\n<p>wget http:\/\/nginx.org\/download\/nginx-1.9.10.tar.gz<\/p>\n\n\n\n<p>tar xzf ngx_cache_purge-2.3.tar.gz<\/p>\n\n\n\n<p>tar xzf nginx-1.9.10.tar.gz<\/p>\n\n\n\n<p>cd nginx-1.9.10<\/p>\n\n\n\n<p>nginx -V #\u67e5\u770bnginx\u7f16\u8bd1\u53c2\u6570\uff0c\u6700\u540e\u52a0\u4e0a&#8211;add-module=..\/ngx_cache_purge-2.3<\/p>\n\n\n\n<p>.\/configure &#8211;prefix=\/usr\/local\/nginx &#8211;user=www &#8211;group=www \\<\/p>\n\n\n\n<p>&#8211;with-http_stub_status_module &#8211;with-http_v2_module &#8211;with-http_ssl_module \\<\/p>\n\n\n\n<p>&#8211;with-ipv6 &#8211;with-http_gzip_static_module &#8211;with-http_realip_module \\<\/p>\n\n\n\n<p>&#8211;with-http_flv_module &#8211;with-ld-opt=-ljemalloc \\<\/p>\n\n\n\n<p>&#8211;add-module=..\/ngx_cache_purge-2.3<\/p>\n\n\n\n<p>make&nbsp; #\u7f16\u8bd1<\/p>\n\n\n\n<p>mv \/usr\/local\/nginx\/sbin\/nginx{,_`date +%F`}&nbsp; #\u5907\u4efdnginx<\/p>\n\n\n\n<p>cp objs\/nginx \/usr\/local\/nginx\/sbin<\/p>\n\n\n\n<p>nginx -V 2&gt;&amp;1 | grep -o ngx_cache_purge<\/p>\n\n\n\n<p># \u663e\u793angx_cache_purge\u8868\u793a\u5df2\u7ecf\u5b89\u88c5\u6210\u529f<\/p>\n\n\n\n<p>\u4e0d\u51fa\u610f\u5916\u4f1a\u51fa\u73b0ngx_cache_purge \uff0c\u8868\u793a\u5df2\u7ecf\u6210\u529f\u5728LNMP\u73af\u5883\u4e0b\u6dfb\u52a0\u4e86ngx_cache_purge\u7ec4\u4ef6<\/p>\n\n\n\n<p>2\uff1aNginx\u914d\u7f6e<\/p>\n\n\n\n<p>\u5efa\u8bae\u5c06fastcgi_cache_path\u8bbe\u7f6etmpfs\u5185\u5b58\u4e2d\uff0c\u64cd\u4f5c\u7cfb\u7edf\u4e0d\u540ctmpfs\u8def\u5f84\u4e5f\u4e0d\u540c\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p>CentOS\uff1a\/dev\/shm<\/p>\n\n\n\n<p>Ubuntu\u548cDebian\uff1a\/run\/shm<\/p>\n\n\n\n<p>\u4fee\u6539nginx\u865a\u62df\u4e3b\u673a\u914d\u7f6e\u6587\u4ef6\/usr\/local\/nginx\/conf\/vhost\/linuxeye.com.conf\uff1a<\/p>\n\n\n\n<p>fastcgi_cache_path \/dev\/shm\/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;<\/p>\n\n\n\n<p>fastcgi_cache_key &#8220;$scheme$request_method$host$request_uri&#8221;;<\/p>\n\n\n\n<p>fastcgi_cache_use_stale error timeout invalid_header http_500;<\/p>\n\n\n\n<p>fastcgi_ignore_headers Cache-Control Expires Set-Cookie;<\/p>\n\n\n\n<p>server {<\/p>\n\n\n\n<p>listen 443 ssl http2;<\/p>\n\n\n\n<p>ssl_certificate \/usr\/local\/nginx\/conf\/vhost\/linuxeye_blog.crt;<\/p>\n\n\n\n<p>ssl_certificate_key \/usr\/local\/nginx\/conf\/vhost\/linuxeye_blog.key;<\/p>\n\n\n\n<p>ssl_ciphers &#8220;CHACHA20:GCM:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS&#8221;;<\/p>\n\n\n\n<p>ssl_session_cache shared:SSL:10m;<\/p>\n\n\n\n<p>ssl_session_timeout 10m;<\/p>\n\n\n\n<p>#ssl_stapling on;<\/p>\n\n\n\n<p>#ssl_stapling_verify on;<\/p>\n\n\n\n<p>resolver 8.8.8.8 8.8.4.4 valid=300s;<\/p>\n\n\n\n<p>resolver_timeout 5s;<\/p>\n\n\n\n<p>server_name linuxeye.com;<\/p>\n\n\n\n<p>access_log \/home\/wwwlogs\/blog_nginx.log combined;<\/p>\n\n\n\n<p>index index.html index.htm index.php;<\/p>\n\n\n\n<p>include wordpress.conf;<\/p>\n\n\n\n<p>root \/home\/wwwroot\/blog;<\/p>\n\n\n\n<p>set $skip_cache 0;<\/p>\n\n\n\n<p>if ($request_method = POST) {<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; set $skip_cache 1;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; }<\/p>\n\n\n\n<p>if ($query_string != &#8220;&#8221;) {<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; set $skip_cache 1;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; }<\/p>\n\n\n\n<p>if ($request_uri ~* &#8220;\/wp-admin\/|\/xmlrpc.php|wp-.*.php|\/feed\/|index.php|sitemap(_index)?.xml&#8221;) {<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; set $skip_cache 1;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; }<\/p>\n\n\n\n<p>if ($http_cookie ~* &#8220;comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in&#8221;) {<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; set $skip_cache 1;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; }<\/p>\n\n\n\n<p>location ~ [^\/]\\.php(\/|$) {<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; #fastcgi_pass remote_php_ip:9000;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; fastcgi_pass unix:\/dev\/shm\/php-cgi.sock;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; fastcgi_index index.php;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; include fastcgi.conf;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; fastcgi_cache_bypass $skip_cache;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; fastcgi_no_cache $skip_cache;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; fastcgi_cache WORDPRESS;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; fastcgi_cache_valid&nbsp; 60m;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; }<\/p>\n\n\n\n<p>location ~ \/purge(\/.*) {<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; allow 127.0.0.1;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; deny all;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; fastcgi_cache_purge WORDPRESS &#8220;$scheme$request_method$host$1&#8221;;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; }<\/p>\n\n\n\n<p>location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; expires 30d;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; access_log off;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; }<\/p>\n\n\n\n<p>location ~ .*\\.(js|css)?$ {<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; expires 7d;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; access_log off;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; }<\/p>\n\n\n\n<p>}<\/p>\n\n\n\n<p>3\uff1a\u4f7fnginx\u914d\u7f6e\u751f\u6548<\/p>\n\n\n\n<p>service nginx reload<\/p>\n\n\n\n<p>\u91cd\u542f\u7cfb\u7edf\u540eshm\u5185\u5b58\u4e2dnginx-cache\u6587\u4ef6\u5939\u4f1a\u4e22\u5931\uff0c\u4e3a\u4e86\u4f7f\u91cd\u542f\u751f\u6548\uff08\u81ea\u52a8\u521b\u5efa\u6587\u4ef6\u5939\uff09\uff0c\u4fee\u6539\/etc\/init.d\/nginx\u7684make_dirs\u4e0b\u4e00\u884c\uff08\u5927\u698252\u884c\uff09\u6dfb\u52a0\uff1a<\/p>\n\n\n\n<p>[ ! -d &#8216;\/dev\/shm\/nginx-cache&#8217; ] &amp;&amp; { mkdir \/dev\/shm\/nginx-cache; chown -R ${user}.$user \/dev\/shm\/nginx-cache; }<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9ad8\u5e76\u53d1\u7f51\u7ad9\u67b6\u6784\u7684\u6838\u5fc3\u539f\u5219\u5176\u5b9e\u5c31\u4e00\u53e5\u8bdd&#8221;&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,7,1],"tags":[],"class_list":["post-766","post","type-post","status-publish","format-standard","hentry","category-linux","category-7","category-1"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.jchj.top\/index.php?rest_route=\/wp\/v2\/posts\/766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jchj.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jchj.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jchj.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jchj.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=766"}],"version-history":[{"count":1,"href":"https:\/\/www.jchj.top\/index.php?rest_route=\/wp\/v2\/posts\/766\/revisions"}],"predecessor-version":[{"id":772,"href":"https:\/\/www.jchj.top\/index.php?rest_route=\/wp\/v2\/posts\/766\/revisions\/772"}],"wp:attachment":[{"href":"https:\/\/www.jchj.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jchj.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=766"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jchj.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}