Com configurar la memòria cau FastCGI amb Nginx al VPS o al servidor dedicat

A Nginx hi ha un mòdul FastCGI. Aquest mòdul inclou directives. El contingut dinàmic que es serveix des del fons PHP es pot emmagatzemar en memòria cau o emmagatzemar-los. Això solucionarà el problema i no haureu de tenir problemes amb solucions addicionals de memòria cau de pàgines i complements específics per a l’aplicació.


Configuració del FastCGI Caching al vostre VPS

Primer de tot, haureu de configurar i configurar Nginx amb PHP al vostre VPS. Ara haureu d’editar el fitxer de configuració de l’ordinador virtual per al qual heu d’habilitar la memòria cau.

nano / etc / nginx / sites-enabled / vhost

Nota especial: consulteu la pàgina d’allotjament VPS de HostAdvice per conèixer els principals amfitrions web d’aquesta categoria, incloses ressenyes d’experts i usuaris..

Fora de la servidor {}  directiva, hauràs d’afegir aquestes línies a la part superior del fitxer:

fastcgi_cache_path / etc / nginx / cache levels = 1: 2 keys_zone = FASTCACHE: 100m inactius = 60m;
fastcgi_cache_key "$ esquema $ request_method $ host $ request_uri";

Veureu la directiva “fastcachepath”, que indica la ubicació de la memòria cau, la mida, el nom de la zona de memòria, els nivells del subdirector i el temporitzador inactiu..

Tot i que sou lliure d’utilitzar qualsevol ubicació del disc dur, però heu de tenir molta cura mentre escolliu la mida, ha de ser inferior a la memòria RAM del vostre vps i Swap combinada. Si la mida supera aquest criteri, rebrà un error que diu “No es pot assignar memòria”. Cal veure les opcions de nivells de la secció de depuració: Nginx elimina una memòria cau si no s’accedeix durant el temps indicat per l’opció “inactiva”.

El nom de fitxers de la memòria cau es defineix mitjançant la directiva “fastcgicachekey”. Basant-se en la seva directiva, Nginx xifra un fitxer accedit amb MD5.

Ara la directiva d’ubicació que passa la sol·licitud de PHP s’ha de canviar a php5-fpm. Haureu d’afegir aquestes línies a la “ubicació ~ .php $ {}”:

fastcgi_cache FASTCACHE;
fastcgi_cache_valid 200 60m;

A les línies anteriors, el “fastcgi_cache” fa al·lusió al nom de la zona de memòria que ja ens ha mencionat en les directives “fastcgicache_path” i la memòria cau també s’emmagatzema en aquesta àrea..

De manera predeterminada, els objectes caché són emmagatzemats per Nginx durant una durada que s’especifica per un dels capçaleres que es proporcionen aquí: X-Accel-Expires, Caduca, Control de memòria cau.

En cas que faltin aquestes capçaleres, la durada de la memòria cau predeterminada s’especifica mitjançant la directiva “fastcgicachevalid” present a la línia anterior. Segons la nostra configuració a les línies anteriors, l’emmagatzematge en memòria cau només es fa a les respostes que posseeixen un codi d’estat de 200.

Prova de configuració

Ara s’ha de fer una prova de configuració.

servei nginx configtest

Torna a carregar Nginx si tot està bé

servei de recàrrega nginx

Ara veuràs el fitxer vhost que sembla:

fastcgi_cache_path / etc / nginx / cache levels = 1: 2 keys_zone = FASTCACHE: 100m inactius = 60m;
fastcgi_cache_key "$ esquema $ request_method $ host $ request_uri";
servidor {
escolta 80;
root / usr / share / nginx / html;
index index.php index.html index.htm;
nom_servei nom_domini.com;

ubicació / {
try_files $ uri $ uri / /index.html;
}
ubicació ~ \ .php $ {
try_files $ uri = 404;
fastcgi_pass unix: /var/run/php5-fpm.sock;
fastcgi_index index.php;
incloure fastcgi_params;
fastcgi_cache FASTCACHE;
fastcgi_cache_valid 200 60m;
}
}

Prova de la memòria cau FastCGI al vostre VPS

En primer lloc, haureu de crear un fitxer PHP que produeixi una marca de temps UNIX.

/usr/share/nginx/html/test.php

A continuació, inseriu el següent:

<?php
temps de ressò ();
?>

Utilitzeu el vostre navegador o curl web per sol·licitar aquest fitxer diverses vegades.

servidor @ root: ~ # curl http: //localhost/test.php; eco
1372986152
servidor @ root: ~ # curl http: //localhost/test.php; eco
1372986152
servidor @ root: ~ # curl http: //localhost/test.php; eco
1372986152

Si teniu la sort de veure la mateixa marca de temps a totes les peticions, la memòria cau funciona de manera adequada.

A continuació, haureu de trobar la memòria cau d’aquesta sol·licitud realitzant una llista recursiva de la ubicació de la memòria cau.

root @ vps: ~ # ls -lR / etc / nginx / cache /
/ etc / nginx / cache /:
total 0
drwx —— 3 www-data www-data 60 28 oct 28 18:53 e

/ etc / nginx / cache / e:
total 0
drwx —— 2 www-data www-data 60 28 oct 18 18:53 18

/ etc / nginx / cache / e / 18:
en total 4
-rw ——- 1 www-data www-data 117 oct 28 18:53 b777c8adab3ec92cd43756226caf618e

Si voleu afegir una capçalera de “X-Cache” a la resposta, podeu fer-ho amb l’ajuda de Nginx. Això indicarà si s’ha perdut la memòria cau o s’ha atès.

Cal afegir-ho a sobre servidor {} directiva:

add_header X-Cache $ upstream_cache_status;

Ara, vegeu la nova capçalera carregant el servei Nginx i realitzant una sol·licitud de verbosa amb curl.

root @ vps: ~ # curl -v http: //localhost/test.php
* A punt de connectar-se () al port localhost 80 (# 0)
* Intentant 127.0.0.1…
* connectat
* Connectat al port 80 localhost (127.0.0.1) 80 (# 0)
> GET /test.php HTTP / 1.1
> User-Agent: curl / 7.26.0
> Amfitrió: localhost
> Accepta: * / *
>
* HTTP 1.1 o posterior amb connexió persistent, amb suport per canalització
< HTTP / 1.1 200 D’acord
< Servidor: nginx
< Data: dilluns, 27 d’abril de 2017 09:10:45 GMT
< Contingut: text / html
< Transferència de codificació: fragmentada
< Connexió: mantenir viva
< X-Cache: HIT
<
* La connexió # 0 per allotjar el localhost queda intacta
1373035828 * Connexió de cloenda # 0

Configuració de les excepcions de caché

En alguns casos, com en el cas de l’autenticació, no cal que es cachein pàgines. Basant-nos en variables com “requesturi”, “rquestmethod” i “http_cookie”, podem excloure que es contingui el contingut en memòria cau.

A continuació, es mostra un exemple de configuració que s’hauria d’utilitzar servidor {}context:

establiu $ no_cache 0;
if ($ request_method = POST)
{
establiu $ no_cache 1;
}
if ($ query_string! = "")
{
establiu $ no_cache 1;
}
if ($ request_uri ~ * "/(administrator/|login.php)")
{
establiu $ no_cache 1;
}
if ($ http_cookie = "PHPSESSID")
{
establiu $ no_cache 1;
}

Cal introduir les línies següents  ubicació ~ .php $ {} per aplicar la variable “$ no_cache” als derivats adequats:

fastcgi_cache_bypass $ no_cache;
fastcgi_no_cache $ no_cache;

La memòria cau existent per a les sol·licituds relacionades amb les condicions establertes anteriorment és ignorada per la directiva “factcgicachebypass”, mentre que si es compleixen els requisits indicats, el “fastcginocache” deixa de sol·licitar la memòria cau..

Purgant la memòria cau

Les variables que establim per als derivats del ‘fastcgicachekey’ són la base de la convenció de denominació de la memòria cau.

fastcgi_cache_key "$ esquema $ request_method $ host $ request_uri";

Segons aquestes variables, aquests haurien estat els valors reals quan “http: // localhost / time / php” ens ho sol·licités:

fastcgi_cache_key "httpGETlocalhost / test.php";

La següent cadena seria la sortida quan aquesta cadena es passa pel hashing MD5:

9552f2a3f53b52db6409e47b57ff63c0

El nom de fitxer de la memòria cau estarà format per aquest. Atès que hem establert “nivells = 1: 2” per a les subdirectories, el primer nivell del directori es nomenarà amb el primer caràcter de l’últim d’aquesta cadena MD5, mentre que el segon nivell tindrà els dos últims caràcters després del primer nivell..

Per tant, la següent estructura serà el directori complet si aquest cau és:

/ etc / nginx / cache / e / 18 / 9552f2a3f53b52db6409e47b57ff63c0

Ara només heu de desenvolupar un script de purga en qualsevol idioma del vostre desig basat en aquesta memòria cau. A continuació, es proporciona un script PHP per eliminar la memòria cau d’un URL publicat.

/usr/share/nginx/html/purge.php

Insereix

<?php
$ cache_path = ‘/ etc / nginx / cache /’;
$ url = parse_url ($ _ POST [‘url’]);
si (! $ url)
{
eco “URL introduït no vàlid”;
morir ();
}
$ esquema = $ url [‘esquema’];
$ host = $ url [‘host’];
$ requesturi = $ url [‘ruta’];
$ hash = md5 ($ scheme.’GET ‘. $ host. $ requesturi);
var_dump (desvincular ($ cache_path. substr ($ hash, -1). ‘/’. substr ($ hash, -3,2). ‘/’. $ hash));
?>

Ara hauràs d’enviar una sol·licitud de POST a aquest fitxer juntament amb l’URL per eliminar.

curl -d ‘url = http: //www.yourwesitename.com/test.php’ http://yourwebsitename.com/purge.php

Ara veureu una sortida del guió com a Veritable o Fals que indica si la memòria cau s’ha purgat o no. Haureu de restringir l’accés i descartar que aquest script no quedi en memòria cau.

Consulteu els tres serveis VPS principals:

A2 Hosting

Preu inicial:
5,00 dòlars


Fiabilitat
9.3


Preu
9.0


Usuari amigable
9.3


Assistència
9.3


Característiques
9.3

Llegiu comentaris

Visita Hosting A2

ScalaHosting

Preu inicial:
12,00 dòlars


Fiabilitat
9.4


Preu
9.5


Usuari amigable
9.5


Assistència
9.5


Característiques
9.4

Llegiu comentaris

Visita ScalaHosting

Hostinger

Preu inicial:
3,95 dòlars


Fiabilitat
9.3


Preu
9.3


Usuari amigable
9.4


Assistència
9.4


Característiques
9.2

Llegiu comentaris

Visita Hostinger

Articles relacionats amb la informació

  • Com instal·lar la pila LEMP (Linux, Nginx, MySQL, PHP) en un servidor Ubuntu 18.04 VPS o servidor dedicat
    intermèdia
  • Com configurar Nginx i Apache junts al mateix VPS o Ubicació del servidor Ubuntu
    intermèdia
  • Com configurar Encriptarem amb Nginx en un servidor Ubuntu 18.04 VPS o dedicat
    intermèdia
  • Com perjudicar el servidor web de Nginx al servidor virtual CentOS 7 o al servidor dedicat
    expert
  • Com instal·lar WordPress amb Nginx & Redis
    principiant
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me