Web server pe o mulțime de nginx apache

Extindeți serverul web sub sistemul de operare Linux, care va utiliza atât nginx cât și apache.

Să existe o platformă hardware pe care CentOS este deja instalat.







Creați o grămadă de apache + nginx. Pe front-end am lansat un nginx ușor și performant, care va procesa cererile de conținut static (imagini, stiluri, js, etc.). În partea din spate (back-end), vom fi asigurați de apache, al cărui obiectiv este de a furniza conținut dinamic (în special PHP).

Web server pe o mulțime de nginx apache

Desigur, există o întrebare legitimă, nu se poate face fără apache la toate? Într-adevăr, nimic nu împiedică configurarea lucrului în comun al nginx + php + mysql (numim PHP în modul FastCGI cu php-fpm). Performanța unui astfel de sistem va fi și mai mare. Dar există un dezavantaj serios: majoritatea motoarelor de site-uri standard sunt orientate direct spre lucrul sub apache (regulile pentru accesarea diferitelor directoare de site-uri sunt configurate în fișierul .htaccess); dar având în vedere faptul că nginx nu procesează .htaccess, fără alte dezvoltări, astfel de site-uri sub nginx nu vor funcționa. Și dacă prelucrarea unui site este o sarcină tehnică destul de fezabilă, atunci întreținerea mai multor site-uri (în special cele străine) devine o problemă reală.

Deci, sacrificăm performanțe extreme, dar păstrăm suportul pentru .htaccess.

Instalați apache, mysql, php. Pentru a face acest lucru, avem nevoie de depozite standard și standard.

Instalarea nginx este un pic mai dificilă, va trebui să mergeți la site-ul dezvoltatorului și să citiți metoda de instalare. Din fericire, în cadrul distribuțiilor răspândite pe scară largă (CentOS și altele similare), dezvoltatorul furnizează pachete gata făcute.

Ajustați întreaga grămadă:

  • Configurația Mysql
  • Configurare Php
  • Apache configurație
  • Configurația nginx.






Acum, ia în considerare fiecare pas în detaliu.

Configurația Mysql

Configurare Php

Practic, nu este necesar, este descris în detaliu într-un articol separat. Principalul lucru nu este să uităm de shorttag: short_open_tag = Activat.

Apache configurație

Deoarece Nginx față am putea pune mai departe, aceasta înseamnă că va rula pe portul standard, 80 și va apela la apache o aproximate prin orice alt port. Am ales 8080.

Modificați fișierul de setări globale. Dau doar parametrii cei mai importanți care trebuie verificați:

Este interesant faptul că KeepAlive ar trebui să fie oprit (mulțumită că ați îndreptat atenția cititorului Mike). Performanța sistemului va crește dacă procesul httpd, după ce a dat conținut dinamic, va fi eliberat imediat.

Este important să creați un utilizator și un grup, din care două servicii vor funcționa într-un pachet: atât nginx cât și httpd. Firește, ar trebui să fie același utilizator atât pentru httpd cât și pentru nginx pentru a evita conflictele! Eu folosesc utilizatorul și grupul Apache în acest scop; ca rezultat, httpd funcționează sub numele său propriu, iar nginx este forțat să lucreze sub un nume diferit.

Prin urmare, trebuie să descrieți toate serverele virtuale. În plus, nu trebuie să uităm de fișierul vhost.conf. în care trebuie să introduceți configurația implicită a site-ului.

Acum, desert! Nu este suficient să configurați apache pentru o activitate normală, este necesar să procesați corect antetul REMOTE_ADDR. În aceste scopuri, instalați și configurați RPAF (mod_rpaf corespunde primei versiuni a apache, iar mod_rpaf2 este cea de-a doua).

Astfel, antetul REMOTE_ADDR are din nou un IP personalizat! De exemplu, pentru scopurile mele acest lucru este extrem de important, deoarece trebuie să monitorizați utilizatorii și să mențineți jurnale detaliate pentru rapoarte.

Instalăm modulul RPAF, pentru care va trebui să fie găsit pe Internet ca un pachet separat pentru distribuția noastră. Există un mod alternativ: conectați depozitul de repo atom și utilizați yum. Apoi, configurați RPAF creând și editați /etc/httpd/conf.d/mod_rpaf.conf:

După configurare, trebuie să reporniți Apache.

Configurația Nginx

Descriim fișierul global de configurare / etc / nginx / nginx.conf:

Sfârșitul. Este suficient să reporniți toate serviciile și să vă asigurați că serverul web funcționează!

Monitorizați accesul la server în timp real:

În cazul în care consola browser-ul apare ERR_INCOMPLETE_CHUNKED_ENCODING (de obicei, se întâmplă în cazul în care fișierele și css generate js "on the fly"), verificați drepturile proprietarului și directorul / var / cache / Nginx / proxy_temp. De asemenea, este logic să eliminați aceste două extensii din tipurile de fișiere statice permise pentru nginx.

Dacă jurnalul de erori arată că un răspuns din amonte este tamponat la un fișier temporar. urmați fișierul de configurație globală nginx pentru a adăuga proxy_max_temp_file_size 0; în secțiunea http.







Articole similare

Trimiteți-le prietenilor: