Apache i Nginx. Connectat per una cadena

Com s'implementa la combinació Apache i Nginx a Timeweb

Per a moltes empreses, Nginx + Apache + PHP és una combinació molt típica i comuna, i Timeweb no és una excepció. Tanmateix, entendre exactament com s'implementa pot ser interessant i útil.

Apache i Nginx. Connectat per una cadena

L'ús d'aquesta combinació depèn, per descomptat, de les necessitats dels nostres clients. Tant Nginx com Apache tenen un paper especial, cadascun resol un problema específic.

paràmetres bàsics Apache es realitzen als fitxers de configuració del mateix Apache i la configuració dels llocs client es produeix Fitxer .htaccess. .htaccess és un fitxer de configuració en el qual el client pot configurar de manera independent les regles i el comportament del servidor web. Aquesta configuració s'aplicarà específicament al seu lloc. Per exemple, gràcies a la funcionalitat d'Apache, els usuaris poden canviar el mode de funcionament dins de la mateixa versió de PHP de mod_php a mod_cgi; podeu configurar redireccions, optimització per a SEO, URL convenient, alguns límits per a PHP.

Nginx s'utilitza com a servidor intermediari per redirigir el trànsit a Apache i com a servidor web per oferir contingut estàtic. També hem desenvolupat mòduls de seguretat per a Nginx que ens permeten protegir les dades dels nostres usuaris, per exemple, per separar els drets d'accés.

Imaginem que un usuari visita el lloc web del nostre client. Primer, l'usuari arriba a Nginx, que ofereix contingut estàtic. Succeeix a l'instant. Aleshores, quan es tracta de carregar PHP, Nginx reenvia la sol·licitud a Apache. I Apache, juntament amb PHP, ja genera contingut dinàmic.

Característiques del paquet Apache i Nginx a Timeweb

El nostre allotjament virtual implementa 2 esquemes operatius principals per a Apache i Nginx: Compartit i Dedicat.

Esquema compartit

Aquest esquema s'utilitza per a la majoria dels usuaris. Es distingeix per la seva senzillesa i intensitat de recursos: l'esquema Compartit utilitza menys recursos, per això la seva tarifa és més barata. Segons aquest esquema, el servidor executa un Nginx, que li permet atendre totes les sol·licituds dels usuaris i diverses instàncies d'Apache.

L'esquema Compartit fa temps que millora: a poc a poc hem corregit les mancances. Convenientment, es pot fer sense necessitat de modificar el codi font.

Apache i Nginx. Connectat per una cadena
Esquema compartit

Esquema dedicat

Dedicat requereix més recursos, per la qual cosa la seva tarifa és més cara per als clients. En l'esquema Dedicat, cada client té el seu propi Apache separat. Els recursos aquí estan reservats per al client, s'assignen exclusivament. Com funciona: Hi ha diverses versions de PHP al servidor. Admetem les versions 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Per tant, per a cada versió de PHP es llança el seu propi Apache.

Apache i Nginx. Connectat per una cadena
Esquema dedicat

Zona segura. Configuració de zones a Nginx

Anteriorment, per a Nginx, vam utilitzar moltes zones de memòria compartida (zones): un bloc de servidor per domini. Aquesta configuració requereix molts recursos, ja que es crea una zona separada per a cada lloc. Tanmateix, a la configuració de Nginx, la majoria de llocs són del mateix tipus, de manera que es poden col·locar en una zona gràcies a l'ús de directrius de mapes al mòdul ngx_http_map_module, que permeten especificar correspondències. Per exemple, tenim una plantilla de zona en la qual hem d'aportar variables: ruta al lloc, versió PHP, usuari. Així, es va accelerar la relectura de la configuració de Nginx, és a dir, la recàrrega.

Aquesta configuració va estalviar molt els recursos de RAM i va accelerar Nginx.

La recàrrega no funcionarà!

A l'esquema Compartit, ens vam desfer de la necessitat de tornar a carregar Apache en canviar la configuració del lloc web. Anteriorment, quan un client volia afegir un domini o canviar la versió de PHP, es requeria una recàrrega obligatòria d'Apache, cosa que provocava retards en les respostes i afectava negativament el rendiment del lloc.

Ens vam desfer de les recàrregues creant configuracions dinàmiques. Gràcies a mpm-itk (Mòdul Apache), cada procés s'executa com un usuari independent, la qual cosa augmenta el nivell de seguretat. Aquest mètode us permet transferir dades sobre l'usuari i el seu document_root des de Nginx a Apache2. Així, Apache no conté configuracions de llocs, les rep de forma dinàmica i ja no calen recàrregues.

Apache i Nginx. Connectat per una cadena
Configuració d'esquema compartit

Què passa amb Docker?

Moltes empreses han passat a un sistema basat en contenidors. Timeweb està considerant actualment la possibilitat d'aquesta transició. Per descomptat, cada decisió té pros i contres.

Juntament amb avantatges innegables, el sistema de contenidors ofereix a l'usuari menys recursos. A Timeweb, gràcies a l'esquema d'allotjament descrit, l'usuari no té cap limitació de RAM. Rep més recursos que al contenidor. A més, l'usuari pot tenir més mòduls d'Apache carregats.

Timeweb alimenta uns 500 llocs web. Prenem una gran responsabilitat i no fem canvis instantanis i injustificats a l'arquitectura complexa. La combinació Apache i Nginx és fiable i provada pel temps. Nosaltres, al seu torn, intentem aconseguir el màxim rendiment mitjançant configuracions úniques.

Per a un funcionament ràpid i d'alta qualitat d'un gran nombre de llocs, cal utilitzar una plantilla i una configuració dinàmica d'Apache i Nginx. Permet administrar de manera fàcil i ràpida un gran nombre de servidors similars.

Font: www.habr.com

Afegeix comentari