Nel processo di utilizzo di WordPress per creare un sito Web, sono state prese molte "deviazioni" per ottimizzare le prestazioni di WordPress e accelerare l'accesso al sito Web. Quando l'accesso al sito web è lento e la memoria della CPU è esaurita, la prima cosa a cui penso è aggiornare la configurazione del server. Più tardi, scopro che alcuni commercianti VPS senza scrupoli limitano gravemente le risorse dietro le quinte, ed è davvero doloroso pagare di più. aggiornamento.

L'esperienza più grande è che con la stessa configurazione, utilizzo lo stesso sito web di diversi commercianti VPS e nelle stesse condizioni di traffico, uno è fluido e l'altro è bloccato. La sensazione più grande per me è che devo leggerlo prima di acquistare un VPS Devi confrontare attentamente le recensioni di altre persone, in particolare le recensioni sulle prestazioni dell’host VPS, altrimenti spenderai facilmente un sacco di soldi.

Successivamente, durante l'ottimizzazione di WordPress, mi sono concentrato sulla memorizzazione nella cache delle pagine. I plug-in di memorizzazione nella cache che ho utilizzato in precedenza includono, ma non sono limitati a, WordPress Super Cache, WP Fastest Cache, W3 Total Cache, cos-html-cache, Cachify... In generale. , l'ho installato La memorizzazione nella cache del plug-in è ancora efficace per accelerare, ma comporta anche molti problemi.

Ad esempio, configurazioni complesse, regole generate, conflitti di plug-in e incapacità di far fronte a traffico improvviso, il che significa che l'utilizzo dei plug-in di memorizzazione nella cache non è ancora in grado di far fronte all'impatto di un traffico di grandi dimensioni. Infine, su consiglio di un amico, ho abilitato la cache Nginx fastcgi_cache e ho utilizzato direttamente Nginx per generare la cache per la pagina. L'efficienza è molto più elevata rispetto all'utilizzo del plug-in cache PHP, che è particolarmente adatto per l'uso su VPS con small configurazioni.

Wordpress attiva il metodo di accelerazione della cache Nginx fastcgi_cache: esempio di configurazione Nginx

Per ulteriori articoli di esperienza su WordPress e sull'ottimizzazione del server, ecco:

  1. Il processo di ottimizzazione Linux php-fpm experience-php-fpm occupa molta memoria e non rilascia problemi di memoria
  2. WordPress aggiunge Alipay, esempi di produzione di pulsanti premio WeChat e collegamento premio Paypal.me
  3. Tutorial sul funzionamento e sulla sintassi di base del comando Linux Crontab per attività pianificate - Automazione VPS/Server

PS: aggiornato il 19 dicembre 2018, La ricerca sul sito fornita con WordPress non solo è lenta ma non consente nemmeno di cercare più parole chiave. Possiamo crearne una noi stessi o utilizzare una ricerca di terze parti da incorporare it in WP: Ricerca sul sito web migliorata: Baidu, ricerca personalizzata di Google e ricerca autocostruita Elasticsearch.

PS: aggiornato il 29 settembre 2019, Grazie all'artefatto di ottimizzazione del server ngx_pagespeed sviluppato da Google, integra un set completo di strumenti di ottimizzazione come caricamento ritardato delle immagini, webp adattivo, ottimizzazione JS e CSS e ottimizzazione delle immagini ottimizzazione: artefatto di ottimizzazione di PageSpeed ​​Server-Nginx distribuisce il modulo ngx_pagespeed e sperimenta effetti accelerati.

1. Installa il modulo Nginx ngx_cache_purge

sito web:

  1. HTTP://labs.Frick.com/files/

1.1 LNMP

Se stai utilizzando il pacchetto di installazione con un clic LNMP, modifica il file lnmp.conf nella directory del pacchetto di installazione lnmp, aggiungi –add-module=/root/ngx_cache_purge-2.3 tra virgolette singole di Nginx_Modules_Options=" , salva e l'aggiornamento nginx viene installato con un clic e anche altri moduli possono fare riferimento a questo.

ngx_cache_purge-2.3 richiede di scaricare il pacchetto di installazione dal sito Web ufficiale frickle.com e decomprimerlo. L'ultima versione è 2.3.

1.2 Uno stack

Se stai utilizzando il pannello OneinStack, puoi compilare il modulo ngx_cache_purge con il seguente comando.

# nginx -V 2>&1 | grep -o ngx_cache_purge 查看ngx_cache_purge是否安装,没有数据表示未安装
cd /root/oneinstack/src
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
tar xzf ngx_cache_purge-2.3.tar.gz

#以下几个安装包都是Oneinstack自带的,不同的版本可能会不同,请根据情况调整
tar xzf nginx-1.14.0.tar.gz
tar xzf pcre-8.42.tar.gz
tar xzf openssl-1.0.2o.tar.gz
cd /root/oneinstack/src/nginx-1.14.0

nginx -V #查看nginx编译参数,最后加上--add-module=../ngx_cache_purge-2.3
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2o --with-pcre=../pcre-8.42 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=../ngx_cache_purge-2.3

make  #编译
mv /usr/local/nginx/sbin/nginx{,_`date +%F`}  #备份nginx
cp objs/nginx /usr/local/nginx/sbin
nginx -V 2>&1 | grep -o ngx_cache_purge
# 显示ngx_cache_purge表示已经安装成功

Quando usi Nginx -V per visualizzare i parametri di compilazione e aggiungere il modulo aggiuntivo, assicurati di operare secondo i tuoi parametri di compilazione Nginx, vale a dire, mantieni i parametri Nginx originali e aggiungi il modulo aggiuntivo. Ad esempio il mio:

2. Nginx abilita la memorizzazione nella cache fastcgi_cache - esempio di configurazione

2.1  Esempio di configurazione

Di seguito pubblico direttamente un esempio di Nginx di wzfou.com che abilita la configurazione della cache fastcgi_cache. Le istruzioni dettagliate sono le seguenti:

#路径需要提前创建好
fastcgi_cache_path /tmp/nginx-cache levels=1:2 keys_zone=WORDPRESS:250m inactive=1d max_size=500m;
fastcgi_temp_path /tmp/nginx-cache/temp;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
#忽略一切nocache申明,避免不缓存伪静态等
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

server {
   listen 80;
   listen 443 ssl http2;
  …………………此部省略……………………
  
   set $skip_cache 0;
   #post访问不缓存
   if ($request_method = POST) {
            set $skip_cache 1;
        }   
   #动态查询不缓存
   if ($query_string != "") {
            set $skip_cache 1;
        }   
   #后台等特定页面不缓存(其他需求请自行添加即可)
   if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|/zhuye/|/wzfou.com/||/question/|/bbs/|/dongtai/|/haoyou/|/qun/|index.php|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;
        }
   #这里请参考你网站之前的配置,特别是sock的路径,弄错了就502了!		
   location ~ [^/].php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    #新增的缓存规则
    fastcgi_cache_bypass $skip_cache;
    fastcgi_no_cache $skip_cache;
    add_header X-Cache "$upstream_cache_status From $host";
    add_header Cache-Control  max-age=0;
    add_header Nginx-Cache "$upstream_cache_status";
    add_header Last-Modified $date_gmt;
    add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
    add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
    add_header X-XSS-Protection "1; mode=block"; # XSS 保护
    etag  on;
    fastcgi_cache WORDPRESS;
    fastcgi_cache_valid 200 301 302 1d;
  }
  
  #缓存清理配置(可选)
  location ~ /purge( /.*) { #为防止转义,请去掉{ /之间的空格
    allow 127.0.0.1;
    #此处填写你的服务器IP
    allow 89.208.xxx.xxx;
    deny all;
    #请注意此处的WORDPRESS要与上面的keys_zone保持一致
    fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
    }
  …………………此部分省略……………………	

}

2.2  Istruzioni

Locale o memoria? In fastcgi_cache_path e fastcgi_temp_path, qualcuno suggerirebbe di impostarlo sul percorso della memoria, ad esempio: /dev/shm/nginx-cache Levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;, se il tuo If l'I/O del disco è molto lento, si consiglia di utilizzare questo metodo. Dopotutto, la velocità di lettura e scrittura della memoria è molto elevata.

add_header Cache-Control Se il contenuto dinamico deve essere aggiornato in tempo reale, può essere impostato su 0, altrimenti il ​​tempo può essere impostato più a lungo.

3. Installa il plug-in Nginx Helper: aggiorna automaticamente la cache

Attraverso il metodo sopra, abbiamo configurato la cache fastcgi_cache Successivamente, dobbiamo risolvere il problema dell'aggiornamento automatico della pagina della cache Nginx quando WordPress ha nuovi commenti e nuovi articoli. Cerca direttamente il plug-in Nginx Helper da scaricare, quindi configuralo, abilitalo prima e seleziona i file locali come metodo di cancellazione.

Il plug-in fornisce anche altre impostazioni, ad esempio se aggiornare la cache di Nginx quando si pubblicano nuovi articoli e nuovi commenti.

Poiché il percorso della cache definito dall'autore del plug-in è /var/run/nginx-cache e possiamo personalizzare il percorso della cache in base alla situazione effettiva del server, la differenza nel percorso della cache farà sì che il plug-in non riuscire a trovare il file della cache ed eliminarlo!

La soluzione è aggiungere il seguente codice a wp-config.php nella directory root di WordPress:

//根据实际情况定义缓存的存放路径
define( 'RT_WP_NGINX_HELPER_CACHE_PATH','/tmp/wpcache');

Se scopri che il codice che definisce il percorso qui sopra non funziona, puoi utilizzare i consigli del blogger "naturale":

Il primo consiste nel modificare il plug-in e cambiare il percorso nel plug-in con il proprio. Il secondo consiste nell'utilizzare i collegamenti software, /var/run/nginxcache e /tmp/wpcache

3. Anteprima dell'effetto Nginx fastcgi_cache

Dopo aver abilitato Nginx fastcgi_cache, possiamo vedere che è stato colpito nelle informazioni dell'intestazione dell'intestazione del browser.

Per le pagine che sono state configurate per non essere memorizzate nella cache, Nginx fastcgi_cache visualizzerà direttamente BYPASS.

Inoltre, Nginx fastcgi_cache BYPASSerà direttamente anche gli utenti che hanno effettuato l'accesso e gli utenti che hanno pubblicato commenti.

Allo stesso tempo, il file di cache generato da Nginx fastcgi_cache può essere visto anche nel percorso della cache del nostro server.

Se scopri che gli utenti che ti hanno commentato stanno ancora utilizzando la cache, dovrebbe essere che WP non ricordi i cookie. Basta aggiungere il seguente codice a functions.php.

add_action('set_comment_cookies','coffin_set_cookies',10,3);
function coffin_set_cookies( $comment, $user, $cookies_consent){
   $cookies_consent = true;
   wp_set_comment_cookies($comment, $user, $cookies_consent);
}

4. Riepilogo

Abilitare la memorizzazione nella cache fastcgi_cache in Nginx è molto importante per accelerare la velocità di risposta della pagina Web e risparmiare risorse del server. L'immagine seguente è il risultato del test di alibabacloud.com Si può vedere che la capacità di carico del server è stata notevolmente migliorata dopo l'abilitazione della memorizzazione nella cache.

Quando wzfou.com esplora il sito per abilitare la cache fastcgi_cache, si scopre che le informazioni di Cache-Control vengono aggiunte al file di configurazione Nginx, ma non hanno sempre effetto. Le informazioni dell'intestazione HTTP conterranno sempre le seguenti informazioni:

Controllo cache: no-store,no-cache,must-revalidate,post-check=0,pre-check=0 e Pragma: no-cache,

Dopo un'indagine, il problema risiede nella parte di impostazione PHP.ini di session.cache_limiter nei pacchetti con un clic LNMP e Oneinstack. Il valore predefinito è nocache e dobbiamo impostarlo su none.

lascia un commento