Acest articol este destinat în primul rând pentru dezvoltatorii de novice. În orice caz, cei care nu au mai instalați niciodată și configura Nginx. Scopul postului este de a arăta cât de ușor și natural este cea mai bună setare pentru setare, și că Nginx nu trebuie să se teamă, și să nu-l merită, fără nevoie de mult pentru a transfera setarea la adminilor.
Nginx (pronunțat "Engin X") - un server de web ușor (de fapt, nu numai pe web), a creat Igorem Sysoevym. Nginx este utilizat în cazul în care dofiga, inclusiv Mail.ru, Yandex, Rambler, și marea-o mare varietate de alte proiecte de mare și nu web foarte. Aici este o listă incompletă de posibile utilizări Nginx:
- Aplicația dvs. poate HTTP, și v-ați decis să cravată SSL opțional, gzip, sau poate, SPDY;
- Ai o mulțime de aplicații, dar doriți ca toate să fie pe portul 80 și au fost responsabile pentru URL-uri diferite;
- Doriți să distribuiți rapid statică;
- Apendicele ridicat pe diferite servere, si doriti sa (1) să distribuie sarcina între ele, (2), în cazul în care unul dintre serverele stabili care răspund cu succes folosind restul;
- Cererile de aderare sunt procesate încet și doriți ca acestea să fie în cache;
- nu știi cum să scrie o cerere de logare HTTP-cereri;
- Accesul la resursa pe care doriți să restricționați de conectare și parola, sau prin IP;
- Tu lampă și un număr mare de cereri începe să curgă afară de memorie (a se vedea nota despre optimizarea WordPress);
- Modificați URL-ul resursei și doriți să configurați o redirecționare de URL-ul vechi pentru compatibilitatea cu versiunile anterioare;
- Vrei să faci tot ce este scris mai sus, în același timp;
Nginx instalat este foarte simplu:
sudo apt-get install Nginx
sudo de pornire de serviciu Nginx
wget localhost: 80 -O -
«Bine ați venit la Nginx» ar trebui să vedeți.
Activitate interogări și erori sunt scrise în / var / log / Nginx /. Fișierele de configurare sunt în / etc / Nginx /. În subdirector site-uri de-a adăugat disponibile toate configurările toate, chiar și cele pe care le utilizate în trecut, dar acum ei folosesc. În site-urile activate adăuga până configurările utilizate, a decis să facă legăturile configs în site-uri de-disponibile.
După schimbarea configs Nginx le poate citi fără a fi nevoie pentru a reporni. Pentru a face acest lucru, trebuie spus:
sudo serviciu Nginx Reîncărcare
După ce reîncărcați-vă pentru a verifica jurnalele pentru a vedea dacă erorile.
Să considerăm un exemplu. Să presupunem că înregistrați podcast-ul și a decis să-l distribui folosind drupleta în DigitalOcean. Apoi, iată cum va arăta în jurul valorii de configurare dvs. Nginx:
root / var / www;
index.htm index index.html;
Locul de amplasare / # Prima încercare de a servi cerere ca fișier, atunci
# Ca director, apoi cad înapoi la afișarea unei 404.
try_files $ uri $ uri / = 404;
>
În general, despre ce vorbim Nginx - este (1) asculta pe portul 80, (2) acordă prioritate fișierelor cu o viteză mai mare de 512 kilobiți pe secundă, (3), în cazul de eroare 403 sau 404 pentru a redirecționa către gazdă specificat, (4 ) Să-l fișiere din directorul / var / www, (5), în cazul în care utilizatorul a solicitat un catalog, și are un fișier numit index.html sau index.htm, da fișierul. Nu e greu, nu?
Luați în considerare un alt exemplu. Să presupunem că aplicația să se rotească în AWS și comunică cu lumea prin vebsoketov. Doriți să criptați traficul utilizând SSL. Nici o problemă:
harta $ http_upgrade $ connection_upgrade implicit de upgrade;
„“ Închide;
>
amonte localhost server de WebSocket: 1234;
>
ssl pe;
/etc/nginx/nginx.crt ssl_certificate;
/etc/nginx/nginx.key ssl_certificate_key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH: aNULL: MD5 sau HIGH: aNULL: MD5: 3DES !!!!!";
ssl_prefer_server_ciphers pe;
Aici am Gauvreau Nginx putea (1) asculta pe portul 443 și redirecționează toate cererile de localhost: 1234 (2) pentru transmiterea către utilizator pentru a seta antetul cu IP, (3), pentru a activa SSL, fără SSLv3 neetanșe. (4) să aloce 100 MB de memorie pentru sesiunea SSL.
În cele din urmă, ultimul exemplu. REST-serviciu se transformă în Hetzner, dă JSON de date, CSV, și generează un flux nesfârșit de evenimente (JSON în codificare de transfer chunked). fluxuri de generare necesită o mulțime de resurse, astfel încât să doriți să traverseze într-un set separat de mașini. De asemenea, doriți să comprimați traficul folosind gzip.
amonte localhost server de service_default: 1234;
>
harta _ service_default $ service_upstream implicit;
>
server de a asculta 80;
chunked_transfer_encoding pe;
proxy_buffering off;
TCP_NODELAY off;
proxy_read_timeout 1800;
proxy_send_timeout 1800;
gzip pe;
gzip_comp_level 6;
gzip_proxied orice;
gzip_types application / json application / x-json-stream;
>
Cred că de acum poți face deja înțelege ce este în joc. În cazul în care, consultați documentația oficială pentru Nginx. E mare și e tot acolo. De asemenea, să acorde o atenție la listele de discuții oficiale.
De fapt, este ceea ce am vrut să spun. Și cum folosiți Nginx?