Príkazy Nginx, ktoré by ste mali vedieť. Riešenie problémov s inštaláciou a konfiguráciou Nginx Konfiguračný súbor Nginx

R sprievodca pre začiatočníkov

Tento tutoriál poskytuje úvodný úvod do nginx a popisuje niektoré jednoduché úlohy, ktoré s ním možno vykonať. Predpokladá sa, že nginx je už nainštalovaný na počítači čitateľa. Ak nie, pozri Inštalácia nginx . Táto príručka popisuje, ako spustiť a zastaviť nginx a znova načítať jeho konfiguráciu, vysvetľuje, ako funguje konfiguračný súbor, a popisuje, ako nastaviť nginx na poskytovanie statického obsahu, ako nastaviť proxy server na nginx a ako prepojiť nginx s Aplikácia FastCGI.

Nginx má jeden hlavný a niekoľko pracovných procesov. Hlavnou úlohou hlavného procesu je čítať a overovať konfiguráciu a riadiť pracovné procesy. Pracovné procesy vykonávajú samotné spracovanie požiadaviek. nginx používa model založený na udalostiach a závisí od operačný systém mechanizmy na efektívnu distribúciu požiadaviek medzi pracovné procesy. Počet pracovných procesov je špecifikovaný v konfiguračnom súbore a môže byť pevne stanovený pre danú konfiguráciu alebo automaticky nastavený na počet dostupných procesorových jadier (pozri časť 3.3. worker_processes ).

Ako nginx a jeho moduly fungujú, je definované v konfiguračnom súbore. V predvolenom nastavení je konfiguračný súbor pomenovaný nginx.conf a nachádza sa v katalógu/usr/local/nginx/conf, /etc/nginx alebo /usr/local/etc/nginx

Ak chcete spustiť nginx, musíte spustiť spustiteľný súbor. Keď je nginx spustený, možno ho ovládať volaním spustiteľného súboru s parametrom-s . Použite nasledujúcu syntax:

signál nginx -s

Kde je signál môže byť jedno z nasledujúcich:

  • stop - rýchle ukončenie
  • - opätovné otvorenie protokolových súborov

Ak chcete napríklad zastaviť procesy nginx počas čakania, kým pracovné procesy dokončia obsluhu aktuálnych požiadaviek, môžete spustiť nasledujúci príkaz:

nginx -s ukončiť

Príkaz musí byť spustený pod tým istým používateľom, pod ktorým bol spustený nginx.

Zmeny vykonané v konfiguračnom súbore sa nepoužijú, kým príkaz reload config nebude manuálne odoslaný do nginx alebo kým nebude reštartovaný. Ak chcete znova načítať konfiguráciu, spustite:

znovu načítať nginx -s

Po prijatí signálu hlavný proces overí syntax nového konfiguračného súboru a pokúsi sa použiť konfiguráciu v ňom obsiahnutú. Ak uspeje, hlavný proces spustí nové pracovné procesy a odošle správy starým pracovným procesom na ukončenie. V opačnom prípade hlavný proces vráti zmeny späť a bude pokračovať v práci so starou konfiguráciou. Staré pracovné procesy, keď dostanú príkaz na ukončenie, prestanú prijímať nové požiadavky a pokračujú v obsluhe aktuálnych požiadaviek, kým nebudú obsluhované všetky takéto požiadavky. Potom sa staré pracovné procesy ukončia.

Môžete tiež posielať signály do procesov nginx pomocou nástrojov Unix, ako je napríklad nástroj zabiť . V tomto prípade sa signál posiela priamo do procesu s daným ID. ID hlavného procesu nginx sa štandardne zapisuje do súboru nginx.pid v /usr/local/nginx/logs alebo /var/run . Napríklad, ak je ID hlavného procesu 1628, na odoslanie signálu QUIT, ktorý elegantne ukončí nginx, by ste spustili:

kill -s UKONČITE 1628

Pomôcku možno použiť na vypísanie všetkých spustených procesov nginx ps , napríklad takto:

ps-ax | grep nginx

Viac informácií o odosielaní signálov do procesov nginx nájdete v správa nginx.

Štruktúra konfiguračného súboru

nginx pozostáva z modulov, ktoré sú konfigurované pomocou direktív špecifikovaných v konfiguračnom súbore. Smernice sa delia na jednoduché a blokové. Jednoduchá smernica pozostáva z názvu a parametrov oddelených medzerami a končí bodkočiarkou (; ). Bloková direktíva má rovnakú štruktúru ako jednoduchá direktíva, ale namiesto bodkočiarky nasleduje za názvom a parametrami množina ďalších inštrukcií umiestnených v zložených zátvorkách (( a ) ). Ak bloková direktíva môže mať v zložených zátvorkách ďalšie direktívy, potom sa nazýva kontext (príklady: udalosti, http, server a umiestnenie).

Direktívy umiestnené v konfiguračnom súbore mimo akéhokoľvek kontextu sa považujú za v kontexte Hlavná. udalosti a http direktívy zasadené do kontextu main, server je v http a umiestnenie je v serveri.

Časť reťazca za znakom# považovaný za komentár.

Poskytovanie statického obsahu

Jednou z dôležitých úloh konfigurácie nginx je poskytovanie súborov, ako sú obrázky alebo statické stránky HTML. Uvažujme o príklade, v ktorom budú v závislosti od požiadavky distribuované súbory z rôznych lokálnych adresárov:/data/www , ktorý obsahuje súbory HTML a/data/images Obsahuje obrazové súbory. Ak to chcete urobiť, musíte upraviť konfiguračný súbor a nakonfigurovať blok server vnútri bloku http s dvoma blokmi umiestnenia.

Najprv vytvorte adresár/data/www a vložte do nej súbor index.html s ľubovoľným textovým obsahom a tiež vytvorte adresár/data/images a vložte do nej nejaké obrazové súbory.

Ďalej otvorte konfiguračný súbor. Predvolený konfiguračný súbor už obsahuje niekoľko príkladov blokov server , väčšinou komentované. Pre našu aktuálnu úlohu je lepšie komentovať všetky takéto bloky a pridať nový blok server:

http(

Server(

Vo všeobecnosti môže konfiguračný súbor obsahovať niekoľko blokov server, odlíšený podľa portov, na ktorých sú počúvať a podľa názvu servera . Určením akého server spracuje požiadavku, nginx porovná URI uvedené v hlavičke požiadavky s parametrami smerníc umiestnenie , definovaný vo vnútri bloku server.

Pridajte blok umiestnenia do bloku servera nasledujúci formulár:

miesto / (

Root /data/www;

Tento blok umiestnenia definuje „ / ” ako predponu, ktorá sa porovnáva s URI z požiadavky. Pre zodpovedajúce požiadavky pridaním URI k ceste špecifikovanej v smernici koreň , teda v tomto prípade do/data/www , cestu k požadovanému súboru v lokálnom systém súborov. Ak existuje zhoda s viacerými blokmi umiestnenie , nginx vyberie blok s najdlhšou predponou. V bloku umiestnenie vyššie je najkratšia predpona, dĺžka jedna, a preto sa tento blok použije iba vtedy, ak sa nezhoduje so žiadnym iným blokom umiestnenie.

miesto /obrázky/ (

Koreň/údaje;

Zhoduje sa s dopytmi počnúc/obrázky/ (miesto / vhodné aj pre nich, ale tam uvedená predpona je kratšia).

Konečná konfigurácia bloku server by mal vyzerať takto:

server(

Miesto / (

Root /data/www;

Miesto /obrázky/ (

Koreň/údaje;

Toto je konfigurácia spusteného servera, ktorá počúva na štandardnom porte 80 a je k dispozícii na lokálny počítač podľa adresy http://localhost/ . V reakcii na požiadavky, ktorých URI začínajú/snímky/ , server odošle súbory z adresára/data/images . Napríklad na žiadosťhttp://localhost/images/example.pngnginx odošle súbor ako odpoveď/data/images/example.png . Ak tento súbor neexistuje, nginx odošle odpoveď označujúcu chybu 404. Žiadosti, ktorých URI nezačínajú/snímky/ , budú namapované do adresára/data/www . Napríklad ako výsledok dotazuhttp://localhost/some/example.htmlako odpoveď sa odošle súbor/data/www/some/example.html .

Uplatňovať nová konfigurácia, spustite nginx, ak ešte nebeží, alebo pošlite signál znovu načítať do hlavného procesu nginx spustením:

znovu načítať nginx -s

V prípade, že niečo nefunguje podľa očakávania, môžete sa pokúsiť zistiť príčinu pomocou súborov access.log a error.log z adresára /usr/local/nginx/logs alebo /var/log/nginx.

Nastavenie jednoduchého proxy servera

Jedným z bežných použití nginx je použitie ako proxy servera, to znamená servera, ktorý prijíma požiadavky, preposiela ich proxy serverom, prijíma od nich odpovede a posiela ich klientovi.

Nastavíme základný proxy server, ktorý bude obsluhovať požiadavky na obrázky z lokálneho adresára a preposielať všetky ostatné požiadavky na proxy server. V tomto príklade budú oba servery bežať pod rovnakou inštanciou nginx.

Najprv vytvorte upstream server pridaním ďalšieho bloku server do konfiguračného súboru nginx s nasledujúcim obsahom:

server(

Počúvaj 8080;

Root /data/up1;

Miesto / (

Bude to jednoduchý server počúvajúci na porte 8080 (predtým počúvaj nebol zadaný, pretože bol použitý štandardný port 80) a zobrazuje všetky požiadavky na adresár/data/up1 na lokálnom súborovom systéme. Vytvorte tento adresár a vložte doň súbor index.html . Všimnite si, že smernica koreň zasadené do kontextu server . Takáto smernica koreň sa použije, keď smernica umiestnenie Vybratý na vykonanie požiadavky neobsahuje vlastnú smernicu koreň.

Ďalej použite konfiguráciu servera z predchádzajúcej časti a upravte ju tak, aby sa stala konfiguráciou proxy servera. Do prvého bloku umiestnenie pridať smernicu proxy_pass , ktorý ako parameter špecifikuje protokol, názov a port proxy servera (v našom prípade toto http://localhost:8080):

server(

Miesto / (

Proxy_pass http://localhost:8080;

Miesto /obrázky/ (

Koreň/údaje;

Zmeníme druhý blok umiestnenie , ktorý je zapnutý tento moment zobrazuje požiadavky s predponou/snímky/ na súbory z adresára/data/images takže je vhodný pre požiadavky na obrázky s typickými príponami súborov. Zmenený blok umiestnenie nasledovne:

Root /data/images;

Argument je regulárny výraz, ktorý sa zhoduje so všetkými URI končiacimi na.gif, .jpg alebo .png . Pred regulárnym výrazom musí byť znak~ . Príslušné požiadavky budú namapované do adresára/data/images .

Keď nginx vyberie blok umiestnenie , ktorý obslúži požiadavku, následne najskôr skontroluje smernice umiestnenie , definovanie predpôn, zapamätanie umiestnenie s najdlhšou zodpovedajúcou predponou a potom skontroluje regulárne výrazy. Ak existuje zhoda s regulárnym výrazom, nginx vyberie vhodný výraz umiestnenie , inak predtým zapamätané umiestnenie.

Výsledná konfigurácia proxy servera vyzerá takto:

server(

Miesto / (

Proxy_pass http://localhost:8080/;

Umiestnenie ~ \.(gif|jpg|png)$ (

Root /data/images;

Tento server bude filtrovať požiadavky končiace na.gif, .jpg alebo .png a zobrazte ich v adresári/data/images (pridaním URI do parametra direktívy koreň ) a presmerovať všetky ostatné požiadavky na upstream server nakonfigurovaný vyššie.

Ak chcete použiť novú konfiguráciu, odošlite signál znovu načítať nginx, ako je opísané v predchádzajúcich častiach.

Je ich veľa ďalšie direktívy na ďalšiu konfiguráciu pripojenia proxy.

Konfigurácia FastCGI Proxying

nginx možno použiť na preposielanie požiadaviek na servery FastCGI. Môžu spúšťať aplikácie vytvorené pomocou rôznych rámcov a programovacích jazykov, ako je napríklad PHP.

Základná konfigurácia nginx pre prácu s proxy serverom FastCGI zahŕňa použitie smernice fastcgi_pass namiesto smernice proxy_pass a fastcgi_param direktívy na konfiguráciu parametrov odovzdaných serveru FastCGI. Predstavte si, že server FastCGI je dostupný na adrese localhost: 9000 . Na základe konfigurácie proxy servera z predchádzajúcej časti nahraďte smernicu proxy_pass do direktívy fastcgi_pass a zmeňte nastavenie na localhost: 9000 . V PHP parameter SCRIPT_FILENAME sa používa na definovanie názvu skriptu a v parametri QUERY_STRING parametre požiadavky sú odovzdané. Získate nasledujúcu konfiguráciu:

server(

Miesto / (

fastcgi_pass localhost:9000;

Fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

Fastcgi_param QUERY_STRING $query_string;

Umiestnenie ~ \.(gif|jpg|png)$ (

Root /data/images;

Tým sa nastaví server, ktorý presmeruje všetky požiadavky, okrem požiadaviek na statické obrázky, na proxy server spustený na localhost: 9000 pomocou protokolu FastCGI.

Jeden z najpopulárnejších webových serverov

Nginx je vďaka svojmu výkonu veľmi obľúbený medzi používateľmi webu a proxy serverov. Server má veľa výhod, ale jeho nastavenie bude pre začiatočníka náročné. Chceme vám pomôcť pochopiť konfiguračné súbory, syntax a nastavenie základných parametrov Nginx.

Hierarchia adresárov

Všetky konfiguračné súbory servera sa nachádzajú v adresári /etc/nginx. Okrem toho sa v adresári nachádza niekoľko ďalších priečinkov, ako aj modulárne konfiguračné súbory.

cd /etc/nginx
ls -F
conf.d/ koi-win naxsi.rules scgi_params uwsgi_params
fastcgi_params mime.types nginx.conf sites-available/ win-utf
koi-utf naxsi_core.rules proxy_params sites-enabled/

Ak ste používali Apache, mali by ste byť oboznámení s adresármi s povolenými lokalitami a s dostupnými lokalitami. Určujú konfiguráciu stránok. Vygenerované súbory sú uložené v poslednom adresári. Priečinok s povolenými lokalitami je potrebný na ukladanie konfigurácií iba pre povolené stránky. Na ich prepojenie potrebujete symbolické prepojenie medzi priečinkami. Konfigurácie môžu byť uložené aj v adresári conf.d. Zároveň sa pri štarte Nginxu každý súbor s príponou .conf načíta v novom. Pri písaní konfiguračných súborov zadajte kód bez chýb a postupujte podľa syntaxe. Všetky ostatné súbory sa nachádzajú v /etc/nginx. Konfigurátor obsahuje informácie o konkrétnych procesoch, ako aj o ďalších komponentoch.

Hlavný konfiguračný súbor pre Nginx je nginx.conf.

Číta všetky konfiguračné súbory a spája ich do jedného požadovaného pri štarte servera. Otvorte súbor pomocou:

sudo nano /etc/nginx/nginx.conf

Na obrazovke sa objavia nasledujúce riadky:

užívateľské www-údaje;
worker_processes 4;
pid /var/run/nginx.pid;
diania (
worker_connections 768;
# multi_accept on;
}
http(
. . .

Prvým je všeobecné informácie o Nginx. Fráza user www-data určuje používateľa, ktorý prevádzkuje server. Smernica pid ukazuje, kde sa nachádzajú procesy PID určené na interné použitie. Riadok worker_processes ukazuje, koľko procesov môže Nginx spustiť súčasne. Okrem toho sa tu môžu špecifikovať protokoly (napríklad protokol chýb je určený direktívou error_log). Nižšie je sekcia udalostí. Je potrebný na obsluhu serverových pripojení. Za ním je blok http.

Štruktúra konfiguračného súboru Nginx

Pochopenie štruktúry formátovania súboru vám pomôže lepšie pochopiť konfiguráciu webového servera. Delí sa na stavebné bloky. Podrobnosti o konfigurácii bloku http sú vrstvené súkromnými blokmi. Od rodiča dedia vlastnosti, t.j. ten, v ktorom sa nachádzajú. Tento blok ukladá väčšinu konfigurácií servera. Sú rozdelené do blokov serverov, v rámci ktorých sa nachádzajú lokality.

Keď konfigurujete server Nginx, majte na pamäti, že čím nižší je konfiguračný blok, tým menej prvkov zdedí vlastnosti a naopak. Súbor obsahuje veľké množstvo možností, ktoré menia fungovanie servera. Môžete nastaviť kompresiu súborov odosielaných klientovi napr. Ak to chcete urobiť, zadajte parametre:

gzip zapnutý;
gzip_disable "msie6";

Majte na pamäti, že rovnaký parameter môže mať v rôznych blokoch rôzne hodnoty. Najprv ho nastavte hore a potom prepíšte parameter na požadovanú úroveň. Ak posledná akcia nevykoná, program nastaví hodnoty automaticky.

Posledné riadky súboru nginx.conf sú:

zahrnúť /etc/nginx/conf.d/*.conf;
zahrnúť /etc/nginx/sites-enabled/*;

Označujú, že umiestnenie a bloky servera sú uložené mimo tohto súboru. Definujú nastavenia pre url adresy a konkrétne súbory. Takáto štruktúra je potrebná na udržanie modulárnej konfiguračnej štruktúry. V jeho vnútri bude možné vytvárať nové adresáre, súbory pre rôzne stránky. Okrem toho môžete zoskupovať podobné súbory. Po zvážení môžete súbor nginx.conf zavrieť.

Virtuálne bloky

Sú analogické s virtuálnymi hostiteľmi v Apache. Bloky sekcie server obsahujú charakteristiky jednotlivých stránok, ktoré sa nachádzajú na serveri. V priečinku dostupné lokality nájdete súbor blokovania servera, ktorý je predvolený. V ňom nájdete potrebné údaje, ktoré môžu byť potrebné pri údržbe stránok.

CD stránky-dostupné
sudo nano predvolene
server(
root /usr/share/nginx/www;
index index.html index.htm;
server_namelocalhost;
miesto / (
try_files $uri $uri/ /index.html;
}
umiestnenie /doc/ (
alias /usr/share/doc/;
automatický index zapnutý;
povoliť 127.0.0.1;
poprieť všetko;
}
}

Vo vyššie uvedenom príklade boli komentáre zámerne odstránené. Bolo to urobené pre uľahčenie vnímania. Vo vnútri blokov servera sú nastavenia uzavreté v zložených zátvorkách:

Tento blok je umiestnený pomocou direktívy include na koniec http špecifikovaného v súbore nginx.conf. Koreňová direktíva definuje adresár, kde sa bude nachádzať obsah stránky. V ňom program vyhľadá súbory, ktoré si používateľ vyžiada. Predvolená cesta je /usr/share/nginx/www. Nginx oddeľuje riadky alebo smernice od seba bodkočiarkou. Ak interpunkčné znamienko nie je zadané, niekoľko riadkov sa číta ako jeden. Ak chcete napísať pravidlá, ktoré sa použijú ako index, použite direktívu index. Server ich skontroluje v poradí, v akom sú uvedené. Ak používateľ nepožiadal o žiadnu z dostupných stránok, vráti sa index.html. Ak tam nie je, server bude hľadať index.htm.

pravidlo server_name

Obsahuje zoznam názvov domén, ktoré bude musieť blok servera spracovať. Môžete ich zadať ľubovoľný počet oddelených medzerami. Ak na koniec alebo začiatok domény vložíte *, môžete zadať názov s maskou. Hviezdička zodpovedá časti názvu. Ak napíšete *.com.ua, potom všetky adresy zadaného doménová zóna. Ak adresa zodpovedá popisu niekoľkých smerníc, potom bude reagovať na tú, ktorá úplne vyhovuje. Ak nenájdu žiadne zhody, odpoveď bude na najdlhšie meno, ktoré má masku. V opačnom prípade sa vykoná zhoda regulárneho výrazu. Názvy serverov, ktoré používajú regulárne výrazy, začínajú vlnovkou (~).

Lokalizačné bloky

Ďalší v poradí budeme mať blok umiestnenia. Je potrebné určiť, ako sa budú spracovávať určité požiadavky. Ak sa zdroje nezhodujú so žiadnymi inými blokmi umiestnenia, budú sa na ne vzťahovať smernice v zátvorkách. Tieto bloky môžu obsahovať cestu ako /doc/. Na vytvorenie úplnej zhody medzi uri a umiestnením sa používa znak =. Pomocou vlnovky môžete porovnávať regulárne výrazy. Môžete tiež nastaviť rozlišovanie malých a veľkých písmen zadaním ~. Ak pridáte hviezdičku, prípad nebude hrať žiadnu rolu.

Majte na pamäti: keď sa požiadavka úplne zhoduje s blokom polohy, použije sa a vyhľadávanie sa zastaví. Keď je zhoda neúplná, identifikátor URI sa porovná s parametrami smerníc o umiestnení. Použije sa blok s kombináciou ^~, ktorá zodpovedá URI na výber bloku. Ak táto možnosť nie je povolená, server vyberie najlepšiu zhodu a tiež vyhľadáva pomocou regulárnych výrazov. Toto je potrebné na výber jednej z vhodných šablón. Ak sa nájde vhodný výraz, použije sa. V opačnom prípade sa použije predchádzajúca zhoda URI. Majte však na pamäti, že Nginx preferuje plné zápasy. Ak nie sú prítomné, začne sa vyhľadávanie regulárnych výrazov a potom podľa URI. Parita vyhľadávania je určená kombináciou znakov ^~.

pravidlo try_files

Ide o veľmi užitočný nástroj, ktorý dokáže skontrolovať existenciu súborov v danom poradí. Na spracovanie žiadosti použije prvé kritériá zhody. Pomocou rozšírených volieb môžete určiť, ako bude server obsluhovať požiadavky. V konfigurátore je štandardne tento riadok:

try_files $uri $uri/ /index.html;

Čo tým myslí? Ak príde požiadavka obsluhovaná blokom umiestnenia, server sa najprv pokúsi spracovať uri ako súbor. Poskytuje to premenná $uri. Ak preň neexistuje žiadna zhoda, uri sa bude považovať za adresár. Jeho existenciu môžete skontrolovať pridaním lomky na koniec: $uri/. Sú situácie, keď sa nenájde súbor ani adresár. V tomto prípade sa načíta predvolený súbor - index.html. Pravidlo try_files používa posledný parameter ako rezervu. Preto daný súbor musí byť v systéme. Ak sa však nenájde žiadna zhoda, Nginx vráti chybovú stránku. Ak ho chcete nastaviť, napíšte = a kód chyby:

Ďalšie možnosti

Ak použijete pravidlo pre alias, môžete stránky bloku umiestnenia obsluhovať napríklad mimo koreňového adresára. Ak sú potrebné súbory z dokumentu, vyžiadajú si ich z /usr/share/doc/. Okrem toho pravidlo autoindex on spustí zoznam adresárov servera pre zadanú direktívu umiestnenia. Ak napíšete riadky odmietnutia a povolenia, môžete zmeniť prístup k adresárom.

Na záver stojí za to povedať, že Nginx je veľmi výkonný. multi nástroj. Ale dobre pochopiť princíp jeho práce bude vyžadovať čas a úsilie. Ak pochopíte, ako fungujú konfigurácie, budete si môcť naplno vychutnať všetky funkcie programu.

|

Nginx je bezplatný a open source webový server, ktorý sa používa na poskytovanie webových stránok a aplikácií akejkoľvek zložitosti. Nginx je známy svojim nízkym dopadom na pamäť, vysokou škálovateľnosťou a modulárnou architektúrou riadenou udalosťami, ktorá dokáže poskytnúť spoľahlivý a predvídateľný výkon. Nginx funguje nielen ako webový server, ale aj ako vyrovnávač zaťaženia, server ukladania do vyrovnávacej pamäte HTTP a reverzný proxy.

Samozrejme, spočiatku môže byť ťažké zapamätať si všetky príkazy a odporúčania na správu servera Nginx. Táto príručka je určená pre tých, ktorí pracujú s Nginx. Zahŕňa niektoré základné príkazy správy služieb, ako aj tipy na diagnostiku a riešenie niektorých bežných problémov.

Každá sekcia môže byť použitá samostatne, takže môžete preskočiť sekcie, ktoré nepotrebujete. Všetky podmienené hodnoty v príkazoch sú zvýraznené červenou farbou; namiesto týchto hodnôt môžete nahradiť svoje vlastné údaje.

Poznámka: Toto predpokladá, že používate verziu Nginx nainštalovanú z predvoleného úložiska v distribúcii podobnej Debianu. Niektoré z príkazov a direktív popísaných v tejto príručke nie sú dostupné v iných distribúciách alebo verziách Nginx nainštalovaných z iných zdrojov.

Inštalácia Nginx

Aktualizujte index balíka a potom nainštalujte Nginx:

aktualizácia sudo apt-get
sudo apt-get nainštalujte nginx

Kontrola stavu Nginx

Ak chcete skontrolovať stav webového servera na aktuálnom počítači, zadajte:

sudo systemctl stav nginx

Automatické načítanie Nginx

V predvolenom nastavení sa služba Nginx spúšťa automaticky. Ak chcete toto správanie zmeniť, zadajte:

sudo systemctl zakázať nginx

Ak chcete znova pridať Nginx do spustenia, zadajte:

sudo systemctl povoliť nginx

Správa služby Nginx

Ak chcete zastaviť server Nginx, zadajte nasledujúci príkaz:

sudo systemctl stop nginx

Ak chcete spustiť server Nginx, zadajte:

sudo systemctl spustiť nginx

Ak chcete službu zastaviť a znova spustiť, zadajte:

sudo systemctl reštartujte nginx

Ak ste zmenili konfiguráciu, môžete znova načítať Nginx v aktuálnej relácii. Zadajte nasledujúci príkaz:

sudo systemctl reload nginx

Vytvorenie koreňového adresára pre statický obsah

Pri vytváraní stránok na Nginx vývojári často používajú virtuálnych hostiteľov(alebo serverové bloky) sú hostitelia, ktorí obsluhujú jednotlivé lokality alebo domény. Ak to chcete urobiť, musíte vytvoriť koreň dokumentu, adresár špičková úroveň, ktorý Nginx kontroluje pri poskytovaní obsahu.

Príkazy v bloku nižšie vytvoria nový koreňový adresár, prenesú doň oprávnenia na používateľa sudo a zmenia oprávnenia každého podadresára v podadresári pod /var/www/.


sudo chown -R $USER:$USER /var/www/example.com/html
nájsť /var/www -type d -exec chmod 775 () \;

V tomto prípade koreňový adresár ponúka globálne povolenia na čítanie a spustenie. Ak chcete vybrať iné povolenia, nahraďte 775 a zadajte požadované povolenia.

Pamätajte, že prístupové práva by sa mali meniť podľa situácie.

Vytvorenie koreňového adresára pre dynamické súbory

Ak vaša lokalita používa dynamické moduly ako PHP-FPM, možno budete musieť preniesť povolenia na niektoré súbory do skupiny www-data. Ak skupina potrebuje oprávnenie na zápis do adresára, uveďte skupinové vlastníctvo adresára.

Nasledujúce príkazy vytvoria nový koreň dokumentu, pridelia ho skupine www-data a zmenia povolenia pre každý podadresár pod /var/www.

sudo mkdir -p /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com
sudo find /var/www -type d -exec chmod 775 () \;

Povolenie a zakázanie konfiguračných súborov

Ak chcete povoliť virtuálneho hostiteľa, musíte vytvoriť symbolický odkaz z adresára s dostupnými lokalitami do adresára s povolenými lokalitami, ktorý Nginx prečíta pri spustení.

Ak to chcete urobiť, zadajte príkaz:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Potom musíte reštartovať Nginx, aby sa nastavenia aktualizovali.

Riešenie problémov v hašovacej tabuľke

Nginx používa hašovacie tabuľky na rýchle spracovanie statických údajov (názvy serverov, typy MIME). Ak ste pridali viacero názvov serverov, je pravdepodobné, že zadaná veľkosť hash názvu servera nebude dostatočná a pri vykonávaní zmien sa zobrazí chyba server_names_hash_bucket_size. Dá sa to opraviť úpravou jednej hodnoty v súbore /etc/nginx/nginx.conf.

Otvorte tento súbor:

sudo nano /etc/nginx/nginx.conf

Nájdite v súbore direktívu server_names_hash_bucket_size. Ak chcete odkomentovať riadok a zvýšiť hodnotu smernice, odstráňte symbol #:

http(
. . .
server_names_hash_bucket_size 64 ;
. . .
}

Tým sa zväčší veľkosť hašovacích tabuliek názvu servera Nginx a služba bude môcť spracovať všetky názvy serverov, ktoré ste pridali. Uložte a zatvorte súbor a potom reštartujte Nginx, aby ste aktualizovali nastavenia.

Testovanie konfigurácie

Zakaždým, keď vykonáte zmeny v konfiguračných súboroch Nginx, nezabudnite na kontrolu spustiť nasledujúci príkaz syntaktické chyby:

Ak sa v konfigurácii vyskytnú chyby, výstup príkazu presne ukáže, kde boli nájdené. Ak v konfiguračných súboroch nie sú žiadne syntaktické chyby, uvidíte niečo takéto:

nginx: syntax konfiguračného súboru /etc/nginx/nginx.conf je v poriadku
nginx: test konfiguračného súboru /etc/nginx/nginx.conf bol úspešný

Ak sa nevyskytnú žiadne chyby, môžete službu znova načítať:

sudo systemctl reštartujte nginx

Dôležité súbory a adresáre Nginx

Obsah

V adresári /var/www/html je uložený celý obsah stránky (toto je koreňový adresár stránky). môžete zmeniť štandardné nastavenia Nginx a zadajte ďalšie adresáre vo var/www.

Konfigurácia servera

  • /etc/nginx/: Konfiguračný adresár Nginx (tu sú uložené všetky konfiguračné súbory webového servera).
  • /etc/nginx/nginx.conf: Hlavný konfiguračný súbor webového servera, kde sa nachádzajú všetky globálne nastavenia.
  • /etc/nginx/sites-available/default: Predvolený virtuálny hostiteľ Nginx. Ostatní virtuálni hostitelia by mali byť tiež uložené v adresári sites-available (ale nebudú fungovať bez symbolického odkazu v sites-enabled).
  • /etc/nginx/sites-enabled/: Tu sú uložené súbory pre povolených virtuálnych hostiteľov. Pri spustení alebo reštarte Nginx načíta konfiguračné súbory a odkazy v tomto adresári, aby vytvoril kompletnú konfiguráciu.

Denníky

  • /var/log/nginx/access.log: Toto je protokol, ktorý zaznamenáva všetky požiadavky Nginx (pokiaľ konfigurácia webového servera nehovorí inak).
  • /var/log/nginx/error.log: Toto je protokol chýb.

Ak chcete získať prístup k protokolom systemd procesu Nginx, spustite tento príkaz:

sudo journalctl -u nginx

Záver

Táto príručka uvádza všeobecných postupov podpora servery nginx. Ak sa chcete dozvedieť viac o práci s Nginx, pozrite si nasledujúce návody.

Značky:

Webový server Nginx je jedným z najpopulárnejších webových serverov s veľmi vysokým výkonom a rýchlym spracovaním statických požiadaviek od používateľov. O správne nastavenie z tohto webového servera môžete dosiahnuť veľmi vysoký výkon. Nginx zvláda statické súbory veľmi rýchlo, či už html stránky alebo iné druhy zdrojov.

V jednom z predchádzajúcich článkov sme sa už zaoberali konfiguráciou jeho hlavných parametrov, v tom istom článku sa chcem viac venovať výkonu a príprave webového servera na použitie v bojových podmienkach. Pokiaľ ide o distribúciu Linuxu, dnes zvážime CentOS, tento systém sa často používa na serveroch a môžu sa vyskytnúť problémy s nastavením Nginx. Ďalej zvážime nastavenie Nginx CentOS, povedzme si, ako povoliť plnú podporu pre http2, rýchlosť stránky google a nastaviť hlavný konfiguračný súbor.

Oficiálne Úložiská CentOS existuje Nginx a s najväčšou pravdepodobnosťou je už nainštalovaný vo vašom systéme. Chceme ale, aby stránka fungovala pomocou protokolu http2, ktorý umožňuje prenášať všetky dáta v jednom pripojení a to zvyšuje výkon. Ak chcete pracovať cez http2, musíte nakonfigurovať SSL certifikát, ale to je už popísané v článku Získanie certifikátu Lets Encrypt Nginx. To však nie je všetko. Väčšina prehliadačov teraz používa protokol ALPN na prechod z bežného SSL na HTTP2.0 a je podporovaný od OpenSSL 1.02. Zatiaľ čo úložiská majú iba OpenSSL 1.01. Preto musíme nainštalovať verziu Nginx postavenú na OpenSSL 1.02. Broken Repo možno použiť na toto:

sudo yum -y nainštalujte yum-utils
# sudo yum-config-manager --add-repo https://brouken.com/brouken.repo

Ak používate úložisko EPEL, musíte uviesť, že z neho nemusíte brať Nginx:

sudo yum-config-manager --save --setopt=epel.exclude=nginx*;

Ak chcete nainštalovať správnu verziu Nginx, stačí zadať:

sudo yum nainštalujte nginx

Najviac Najnovšia verzia Nginx 1.13.2 s plnou podporou ALPN. Prejdime k nastaveniu.

2. Nastavenie Nginx

Prvým krokom je zvážiť štruktúru konfiguračného súboru. Na prvý pohľad sa tu všetko môže zdať veľmi mätúce, ale všetko je tam celkom logické:

globálne možnosti
diania()
http(
server(
umiestnenie()
}
server()
}

Najprv sú tu globálne možnosti, ktoré nastavujú hlavné parametre programu, napríklad od akého používateľa sa bude spúšťať a počet procesov. Nasleduje sekcia. diania, ktorý popisuje, ako bude Nginx reagovať na prichádzajúce pripojenia, za ktorým nasleduje sekcia http, ktorý kombinuje všetky nastavenia týkajúce sa fungovania protokolu http. Obsahuje sekciu server, každá takáto sekcia je zodpovedná za samostatnú doménu, sekcia server obsahuje sekcie umiestnenie, z ktorých každá je zodpovedná za konkrétnu adresu URL požiadavky, všimnite si, že nejde o súbor na serveri ako v Apache, ale o adresu URL požiadavky.

Hlavné globálne nastavenia vykonáme v súbore /etc/nginx/nginx.conf. Ďalej zvážte, čo presne zmeníme a aké hodnoty je žiaduce nastaviť. Začnime s globálnymi možnosťami:

  • užívateľ- používateľ, pod menom ktorého bude server spustený, musí byť vlastníkom adresára so súbormi stránky a v jeho mene musí byť spustený php-fpm;
  • worker_processes- počet procesov Nginx, ktoré budú spustené, musí byť nastavený presne toľko, koľko máte jadier, napríklad ja mám 4;
  • worker_cpu_affinity- tento parameter umožňuje priradiť každý proces samostatnému jadru procesora, nastaviť hodnotu na auto, aby si program sám vybral, čo a k čomu sa pripojí;
  • worker_rlimit_nofile - maximálne množstvo súbory, ktoré môže program otvoriť, potrebujete aspoň dva súbory na pripojenie a každý proces bude mať zadaný počet pripojení, takže vzorec je: worker_processes* worker_connections* 2, parameter worker_connections budeme analyzovať trochu nižšie;
  • pcre_jit- povoliť túto možnosť, ak chcete urýchliť spracovanie regulárnych výrazov pomocou kompilácie JIT;

V sekcii udalostí by ste mali nakonfigurovať dva parametre:

  • worker_connections- počet pripojení pre jeden proces musí byť dostatočný na spracovanie prichádzajúcich pripojení. Najprv musíme vedieť, koľko z týchto prichádzajúcich pripojení existuje, preto sa pozrieme na štatistiky na adrese ip_server/nginx_status. Ako povoliť, pozri nižšie. V riadku Aktívne pripojenia vidíme počet aktívnych pripojení k serveru, musíte tiež vziať do úvahy, že sa počítajú aj pripojenia s php-fpm. Ďalej dávajte pozor na polia prijaté a spracované, prvé zobrazuje spracované spojenia, druhé - počet prijatých spojení. Z hodnôt musia byť rovnaké. Ak sa líšia, potom nie je dostatok spojení. Pozrite si príklady, prvý obrázok je problém, druhý je poradie. Pre moju konfiguráciu môže byť optimálny počet 200 pripojení (celkovo 800, berúc do úvahy 4 procesy):

  • multi_accept- umožňuje programu akceptovať niekoľko spojení súčasne, tiež urýchľuje prácu s veľkým počtom spojení;
  • accept_mutex- nastavte hodnotu tohto parametra na off, aby všetky procesy okamžite dostali upozornenie o nových pripojeniach;

Odporúča sa tiež použiť direktívu use epoll v sekcii udalostí, pretože ide o najefektívnejšiu metódu spracovania prichádzajúcich pripojení pre Linux, ale táto metóda sa používa štandardne, takže nevidím dôvod, prečo ju pridávať ručne. Zvážte niekoľko ďalších parametrov z časti http:

  • poslať súbor- použite metódu odosielania dát sendfile. Najúčinnejšia metóda pre Linux.
  • tcp_nodelay, tcp_nopush- posiela hlavičky a telo požiadavky v jednom pakete, pracuje o niečo rýchlejšie;
  • keepalive_timeout- časový limit pre udržanie spojenia s klientom, ak nemáte veľmi pomalé skripty, tak bude stačiť 10 sekúnd, nastavte hodnotu tak dlho, ako je potrebné, aby sa používateľ mohol pripojiť k serveru;
  • reset_timedout_connection- po uplynutí časového limitu odpojte pripojenia.
  • open_file_cache- informácie o vyrovnávacej pamäti o otvorené súbory. Napríklad open_file_cache max=200000 inactive=120s; max - maximálny počet súborov vo vyrovnávacej pamäti, čas ukladania do vyrovnávacej pamäte.
  • open_file_cache_valid- keď potrebujete skontrolovať relevantnosť súborov. Napríklad: open_file_cache_valid 120s;
  • open_file_cache_min_uses- ukladať do vyrovnávacej pamäte iba súbory, ktoré boli otvorené stanovený počet krát;
  • open_file_cache_errors- zapamätajte si chyby pri otváraní súboru.
  • if_modified_since- nastavuje, ako budú spracované hlavičky if-modified-since. Pomocou tejto hlavičky môže prehliadač dostať odpoveď 304, ak sa stránka od posledného zobrazenia nezmenila. Existujú možnosti - neodoslať - vypnúť, odoslať, ak sa čas presne zhoduje - presný, odoslať, ak sa čas presne alebo viac zhoduje - predtým;

Takto bude vyzerať nastavenie nginx conf:

užívateľ nginx;
worker_processes 4;
worker_cpu_affinity auto;
worker_rlimit_nofile 10000;
pcre_jit on;
error_log /var/log/nginx/error.log warning;
load_module "modules/ngx_pagespeed.so";
diania (
multi_accept on;
accept_mutex off;
worker_connections 1024;
}
http(
sendfile on;
tcp_nopush on;
tcp_nodelay on;
open_file_cache max=200000 neaktívnych=20s;
open_file_cache_valid 120s;
open_file_cache_errors on;
reset_timedout_connection zapnuté;
client_body_timeout 10;
keepalive_timeout 65;
vrátane /etc/nginx/sites-enabled.*.conf
}

3. Nastavenie http2

Nebudem podrobne popisovať konfiguráciu serverovej sekcie, pretože som to už urobil v článku o inštalácii Nginx v Ubuntu a tu nemám čo dodať, konfigurácia SSL je pomerne rozsiahla téma a bude sa jej venovať aj samostatný článok. Ale na nastavenie http2 už musíte mať SSL. Ďalej stačí vyladiť direktívu počúvať v sekcii servera:

počúvať 194.67.215.125:443 predvolený_server;

počúvať 194.67.215.125:443 http2 default_server;

Páči sa ti to jednoduchým spôsobom je možné povoliť http2, ak bola predtým nainštalovaná správna verzia Nginx.

4. Nastavenie PageSpeed

Google Pagespeed je modul Nginx, ktorý vykonáva rôzne optimalizácie, aby sa stránky načítali rýchlejšie, webový server fungoval efektívnejšie a používatelia sa cítili pohodlne. To zahŕňa ukladanie do vyrovnávacej pamäte, optimalizáciu html kód, optimalizácia obrázkov, kombinovanie kódu javascript a css a mnoho ďalšieho. Toto všetko sa robí na úrovni Nginx, takže je to efektívnejšie, ako keby ste to robili v php. Ale je tu jedna nevýhoda, modul odstraňuje hlavička Posledná upravené.

Faktom je, že PageSpeed ​​​​nastavuje veľmi dlhý riadok vyrovnávacej pamäte pre všetky súbory a pridáva svoj hash k názvu súboru. Vďaka tomu je načítanie zdrojov oveľa rýchlejšie, pretože prehliadač bude požadovať iba súbory s novým hashom a LastModified sa odstráni, takže používatelia môžu vidieť zmeny, ak sa zmení akýkoľvek súbor. Teraz sa pozrime na to, ako nainštalovať modul. Budeme to musieť postaviť zo zdroja.

Najprv nainštalujte nástroje na zostavenie, je to veľmi dôležité, ak ich nenainštalujete, zobrazí sa chyba a nebudete vedieť, čo robiť:

yum install wget gcc cmake rozbaliť gcc-c++ pcre-devel zlib-devel

Stiahnite si a extrahujte zdroje Nginx pre vašu verziu, napríklad 1.13.3:

wget -c https://nginx.org/download/nginx-1.13.3.tar.gz
# tar -xzvf nginx-1.13.3.tar.gz

Nastavenie servera nginx nezahŕňa prestavbu a nahradenie programu z úložiska, iba tieto zdroje používame na zostavenie modulu. Stiahnite si a extrahujte zdroje PageSpeed:

wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip
# unzip v1.12.34.2-stable.zip

Stiahnite si a rozbaľte knižnicu optimalizácie PageSpeed ​​do zdrojového priečinka modulu:

cd ngx_pagespeed-1.12.34.2-stable/
# wget -c https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
# tar -xvzf 1.12.34.2-x64.tar.gz

Stiahnite si a extrahujte zdroje OpenSSL 1.02:

wget -c https://www.openssl.org/source/openssl-1.0.2k.tar.gz -O /opt/lib/$OPENSSL.tar.gz
# tar xvpzf openssl-1.0.2k.tar.gz

Teraz musíme zostaviť modul. Najprv sa pozrime na možnosti, s ktorými je zostavený súčasný Nginx:

A teraz prejdeme do priečinka s Nginx, nahradíme všetky prijaté možnosti, možnosť --add-dynamic-module pre PageSpeed, OpenSSL a pokúsime sa vytvoriť:

cd nginx-1.13.3
# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx .conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx .pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache /nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path= /var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_slice_module --with-http_stubsstat_module --with-http_sub_module --wit h-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -výnimky -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic" --with-ld-opt= --with -openssl=$HOME/openssl-1.0.2k --add-dynamic-module=$HOME/ngx_pagespeed-1.12.34.2-stable $(PS_NGX_EXTRA_FLAGS)
#urobiť

Ak bolo všetko vykonané správne, na výstupe dostanete modul ngx_pagespeed.so v priečinku obj, musíte ho skopírovať do priečinka /etc/nginx/modules:

cp ngx_pagespeed.so /etc/nginx/modules/ngx_pagespeed.so

Vytvorte priečinok pre vyrovnávaciu pamäť:

mkdir -p /var/ngx_pagespeed_cache
# chown -R nginx:nginx /var/ngx_pagespeed_cache

Teraz pridajte tento riadok, aby ste povolili modul v /etc/nginx/nginx.conf:

load_module "modules/ngx_pagespeed.so";

Budeme pracovať pod účtu bežný používateľ s právami sudo. Budete tiež potrebovať nainštalovaný webový server Nginx. V prípade potreby môžete nainštalovať plnú verziu LEMP (Linux, Nginx, MySQL a PHP). Ak chcete nainštalovať Nginx, stačí spustiť nasledujúci príkaz:

sudo apt-get aktualizácia sudo apt-get install nginx

Pred pokračovaním v čítaní článku dôrazne odporúčame splniť vyššie uvedené podmienky. Napríklad nastavíme dve domény na našom serveri. Ich názvy sú example.com, test.com. Ak nemáte k dispozícii dve voľné mená, vymyslite si dve a neskôr vám ukážeme, ako si prispôsobiť svoje lokálny server na kontrolu ich funkčnosti.

Krok 1 - Nastavenie nového koreňového adresára

V predvolenom nastavení je na vašom serveri Nginx povolený iba jeden virtuálny hostiteľ. Funguje s dokumentmi na adrese: /usr/share/nginx/html. Toto nastavenie zmeníme, pretože s najväčšou pravdepodobnosťou budeme pracovať s adresárom /var/www. Nginx štandardne nepoužíva tento adresár, pretože je v rozpore so zásadou Debianu používať balíky v adresári /var/www.

Ale keďže sme bežní používatelia a problémy s ukladaním balíkov sa stretávame len zriedka, budeme túto politiku ignorovať a tento adresár nastavíme ako koreňový. Presnejšie povedané, každý adresár v koreňovom adresári musí zodpovedať samostatnej lokalite. Všetky súbory lokality umiestnime do adresára /var/www/názov_stránky/html. Najprv si vytvorte všetky potrebné podadresáre. Ak to chcete urobiť, spustite nasledujúci príkaz:

sudo mkdir -p /var/www/example.com/html sudo mkdir -p /var/www/test.com/html

Príznak -p hovorí shellu, aby vytvoril nové adresáre, ak v zadanej ceste neexistujú. Teraz prenesieme práva na tento adresár bežný používateľ. Aby sme sa vyhli zadávaniu názvu nášho účtu, použime premennú prostredia $USER. Po týchto krokoch budeme môcť vytvárať súbory v adresári /var/www/, ale návštevníci stránky nie.

sudo chown -R $USER:$USER /var/www/example.com/html sudo chown -R $USER:$USER /var/www/test.com/html

Povolenia v koreňovom adresári by mali byť nastavené správne, ak ste neopravili hodnotu umask, ale pre každý prípad to opravíme:

sudo chmod -R 755 /var/www

Kompletne sme pripravili štruktúru pre náš server, môžeme pokračovať.

Krok 2 – Vytvorte šablónu stránky pre každú lokalitu

Vytvorme stránku, ktorá sa bude štandardne zobrazovať pri vytváraní novej stránky. Vytvorte súbor index.html v adresári prvej domény:

Nano /var/www/example.com/html/index.html

Vo vnútri vytvoríme minimálny obsah, aby sme pochopili, na akej stránke sa nachádzame. Tu je príklad obsahu:

Vitajte na example.com!

Toto je virtuálny hostiteľ example.com!



Uložte a zatvorte súbor. Keďže druhý súbor bude mať podobný obsah, stačí ho skopírovať:

cp /var/www/example.com/html/index.html /var/www/test.com/html/

Urobme v ňom niekoľko zmien:

Nano /var/www/test.com/html/index.html Vitajte na Test.com!

Toto je virtuálny hostiteľ test.com!



Uložte a zatvorte tento súbor. Teraz uvidíme, či sú naše stránky správne nakonfigurované.

Krok 3 – Vytvorte virtuálne hostiteľské súbory pre každú doménu

Teraz máme obsah pre každú stránku, je čas na tvorbu virtuálnych hostiteľov(presnejšie, v Nginxe sa nazývajú bloky serverov, ale budeme používať výraz virtuálny hostiteľ). Nginx štandardne používa jedného virtuálneho hostiteľa s názvom predvolená. Použime ho ako šablónu pre našu konfiguráciu. Najprv vypracujeme nastavenie pre prvú doménu, ktoré potom jednoducho skopírujeme a na druhej doméne urobíme minimálne zmeny.

Vytvorenie prvého súboru virtuálneho hostiteľa

Ako som povedal, skopírujte konfiguračný súbor predvolená:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com

Otvorme tento súbor s právami správcu:

Sudo nano /etc/nginx/sites-available/example.com

Ak vynecháte komentáre, súbor by mal vyzerať takto:

Server ( listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.html index.htm; server_name localhost; location / ( try_files $uri $uri/ =404 ;))

Začnime direktívou počúvať. Iba jeden blok servera môže byť nastavený na default_server . Blok s touto hodnotou bude obsluhovať požiadavky, ak nebol nájdený žiadny zodpovedajúci blok (blok je všetko na serveri). Túto direktívu deaktivujeme v predvolenom virtuálnom hostiteľovi, aby sme mohli použiť default_server na jednej z našich domén. Túto funkciu ponechám povolenú pre prvú doménu, ale ak chcete, môžete ju presunúť do druhej.

Ďalšia vec, ktorú urobíme, je nastavenie koreňového adresára s koreňovou direktívou. Mal by ukazovať na adresár, kde sa nachádzajú všetky dokumenty vašej stránky:

Root /var/www/example.com/html;

Poznámka: každá inštrukcia Nginx musí končiť znakom „;“.

Server_name example.com www.example.com;

Server (počúvajte 80 predvolený_server; počúvajte [::]:80 predvolený_server ipv6only=on; root /var/www/example.com/html; index index.html index.htm; názov_servera example.com www.example.com; umiestnenie / ( try_files $uri $uri/ =404; ) )

Na toto základné nastavenie hotový. Uložte a zatvorte súbor.

Vytvorte druhého virtuálneho hostiteľa

Ak to chcete urobiť, jednoducho skopírujte súbor s nastaveniami pre prvú lokalitu:

sudo cp /etc/nginx/sites-available/example.com /etc/nginx/sites-available/test.com

Otvorte tento súbor s právami správcu

sudo nano /etc/nginx/sites-available/test.com

V tomto súbore tiež začneme direktívou listen. Ak ste v prvom súbore ponechali možnosť default_server, tu by sa mala odstrániť. Je tiež potrebné odstrániť možnosť ipv6only=on, pretože je určená iba pre jednu kombináciu adresy/portu:

Počúvaj 80; počúvaj[::]:80;

Nastavte koreňový adresár pre druhú lokalitu:

Root /var/www/test.com/html;

Teraz zadajte názov_servera pre druhú doménu:

Server_name test.com www.test.com;

Konečné nastavenie by malo vyzerať takto:

Server ( počúvať 80; počúvať [::]:80; root /var/www/test.com/html; index index.html index.htm; názov_servera test.com www.test.com; umiestnenie / ( try_files $uri $ uri/ =404; ) )

Uložte a zatvorte súbor.

Krok 4 - Aktivácia virtuálnych hostiteľov a reštartovanie Nginx

Nastavili sme našich virtuálnych hostiteľov, teraz je čas ich aktivovať. Ak to chcete urobiť, musíte vytvoriť symbolické odkazy na tieto súbory a umiestniť ich do adresára s povolenými lokalitami, ktorý Nginx prečíta pri spustení. Odkazy je možné vytvoriť pomocou nasledujúceho príkazu:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/

Nginx teraz tieto súbory spracuje. Predvolený virtuálny hostiteľ je však tiež povolený, takže dostaneme konflikt parametrov default_server. Toto nastavenie môžete zakázať jednoducho odstránením odkazu na súbor. Samotný súbor zostane v adresári sites-available, takže ho môžeme v prípade potreby vždy vrátiť.

sudo rm /etc/nginx/sites-enabled/default

V konfiguračnom súbore Nginx je potrebné vykonať ešte jedno nastavenie. Otvor to:

sudo nano /etc/nginx/nginx.conf

Musíte odstrániť komentár z jedného z riadkov:

Server_names_hash_bucket_size: 64

Táto direktíva sa používa, keď je zadaný veľký počet názvov serverov alebo sú zadané nezvyčajne dlhé názvy. Napríklad, ak je predvolená hodnota 32 a názov servera je nastavený na "too.long.server.name.example.org", potom nginx odmietne spustenie a zobrazí chybovú správu:

Nepodarilo sa vytvoriť server_names_hash, mali by ste zvýšiť server_names_hash_bucket_size: 32

Preto je lepšie zvýšiť túto hodnotu na 64. Teraz môžete reštartovať webový server, aby sa zmeny prejavili:

Reštart služby Sudo nginx

Váš server by teraz mal spracovávať požiadavky pre obe domény.

Krok 5 – Nastavenie súboru Local Hosts (voliteľné)

Ak ste použili svoje vlastné názvy domén, musíte nakonfigurovať svoj lokálny server tak, aby ich rozpoznal a mohli ste skontrolovať svojich virtuálnych hostiteľov (názvy domén zaregistrujeme v lokálnom hostiteľský súbor). Používatelia internetu si samozrejme nebudú môcť prezerať vašu stránku týmto spôsobom, ale bude stačiť skontrolovať hostiteľov. Takto zachytíme požiadavku na odoslanie DNS server. Teoreticky uvádzame, na ktorú IP adresu by mal náš počítač prejsť pri prístupe ku konkrétnemu názvu domény.

Upozorňujeme, že tieto zmeny by sa mali vykonávať iba na lokálnom počítači a nie na serveri VPS. Budete potrebovať root práva, tiež musíte mať právo upravovať systémové súbory.

Ak používate systém Mac alebo Linux, opravy je možné vykonať takto:

sudo nano /etc/hosts

Ak používate Windows, tak návod na tento OS nájdete na oficiálnej stránke výrobcu (alebo na google). Potrebujete poznať verejnú IP adresu vášho servera a názvy domén, ktoré k nemu chcete viazať. Povedzme, že moja adresa je 111.111.111.111, potom musím do súboru hosts pridať nasledujúce riadky:

127.0.0.1 localhost 127.0.0.1 guest-desktop 111.111.111.111 example.com 111.111.111.111 test.com

Preto zachytíme všetky požiadavky na tieto názvy domén a presmerovať ich na náš server. Po dokončení uložte a zatvorte súbor.

Krok 6 - Skontrolujte

Zapnuté tejto fáze mali by ste získať plne funkčné nastavenie. Zostáva to len skontrolovať. Ak to chcete urobiť, prejdite na adresu prehliadača: http://example.com ( :target="_blank") . Ak sa obe stránky zobrazujú správne, potom si môžete zablahoželať úplné prispôsobenie server nginx. Ak ste v tejto fáze vykonali zmeny v súbore hosts, mali by sa odstrániť. Overenie bolo úspešné a už nie sú potrebné. Ak chcete používateľom internetu otvoriť prístup k stránkam, budete si musieť zakúpiť názvy domén.

Záver

Naučili ste sa, ako plne nakonfigurovať virtuálnych hostiteľov pre každú lokalitu na vašom serveri. V skutočnosti neexistujú žiadne obmedzenia týkajúce sa počtu stránok na jednom počítači, s výnimkou zdrojov samotného systému.



Načítava...
Hore