Inštalácia Nginx:
Nginx je k dispozícii v oficiálnom úložisku balíkov CentOS 8. Inštalácia je teda veľmi jednoduchá.
Najskôr aktualizujte medzipamäť úložiska balíkov DNF takto:
$ sudo dnf makecache
Teraz nainštalujte Nginx pomocou nasledujúceho príkazu:
$ sudo dnf nainštalovať nginx
Inštaláciu potvrdíte stlačením Y a potom stlačte
Nginx by mal byť nainštalovaný.
Správa služby nginx:
Predvolene, nginx služba by mala byť neaktívny (nebeží) a postihnutý (nespustí sa automaticky pri štarte).
$ sudo systemctl status nginx
Môžete spustiť nginx službu takto:
$ sudo systemctl start nginx
nginx služba by mala byť bežiaci.
$ sudo systemctl status nginx
Teraz pridajte nginx služba pri štarte systému nasledovne:
$ sudo systemctl povoliť nginx
Konfigurácia brány firewall:
Musíte nakonfigurovať bránu firewall tak, aby umožňovala prístup k portu HTTP 80 a portu HTTPS 443, aby ste mohli pristupovať na webový server Nginx z iných počítačov v sieti.
Prístup k portu HTTP a HTTPS môžete povoliť pomocou nasledujúceho príkazu:
$ sudo firewall-cmd --add-service = http, https - trvalé
Teraz, aby sa zmeny prejavili, spustite nasledujúci príkaz:
$ sudo firewall-cmd - načítať
Testovanie webového servera:
Ak chcete získať prístup, musíte poznať adresu IP alebo názov domény webového servera Nginx.
IP adresu vášho webového servera Nginx nájdete pomocou nasledujúceho príkazu:
$ ip aV mojom prípade je IP adresa 192.168.20.175. U teba to bude iné. Odteraz ho teda vymeňte za svoj.
Teraz navštívte stránku http: // 192.168.20.175 z webového prehliadača. Mali by ste vidieť nasledujúcu stránku. Znamená to, že webový server Nginx funguje.
Konfiguračné súbory nginx:
Konfiguračné súbory webového servera Nginx sa nachádzajú v priečinku / etc / nginx / adresár.
$ strom / etc / nginx
/ etc / nginx / nginx.konf je hlavný konfiguračný súbor Nginx.
Predvolený webový koreňový adresár webového servera Nginx je / usr / share / nginx / html /. To je miesto, kde by ste mali mať súbory na svojom webe.
Nastavenie základného webového servera:
V tejto časti vám ukážem, ako nastaviť základný webový server Nginx.
Najskôr si urobte zálohu pôvodného konfiguračného súboru Nginx pomocou nasledujúceho príkazu:
$ sudo mv -v / etc / nginx / nginx.conf / etc / nginx / nginx.konf.originál
Teraz vytvorte nový konfiguračný súbor Nginx nasledovne:
$ sudo nano / etc / nginx / nginx.konf
Teraz zadajte nasledujúce riadky do súboru / etc / nginx / nginx.konf súbor a uložte súbor.
užívateľ nginx nginx;worker_processes auto;
error_log / var / log / nginx / chyba.guľatina;
pid / run / nginx.pid;
diania
worker_connections 1024;
http
zahrnúť / etc / nginx / mime.typy;
predvolený typ aplikácie / octet-stream;
server
počúvať 80;
príklad názov_servera.com www.príklad.com;
root / usr / share / nginx / html;
indexový index.html;
prístupový_log / var / log / nginx / prístup.guľatina;
Tu, používateľ voľba sa používa na nastavenie používateľa a skupiny Nginx run na nginx resp.
The error_log voľba sa používa na nastavenie cesty súboru protokolu chýb k / var / log / nginx / chyba.log. Tu sa budú ukladať chyby súvisiace so serverom Nginx.
Hlavná konfigurácia servera Nginx je definovaná v server časť vo vnútri http oddiel. Môžete definovať viac ako jeden server časť vo vnútri http oddiel, ak je to potrebné.
V server oddiel,
počúvaj Táto voľba sa používa na konfiguráciu Nginxu na počúvanie portu 80 (port HTTP) pre webové požiadavky.
názov servera Táto voľba sa používa na nastavenie jedného alebo viacerých doménových mien pre webový server Nginx. Ak sú vaše nastavenia DNS správne, môžete na webový server Nginx získať prístup pomocou týchto doménových mien.
prístup_log sa používa na nastavenie cesty súboru protokolu prístupu k / var / log / nginx / prístup.log. Keď sa niekto pokúsi získať prístup na webový server Nginx, prístupové informácie (t.j.e. IP adresa, URL, stavový kód HTTP) sa zaznamená do tohto súboru.
The umiestnenie Táto voľba sa používa na nastavenie koreňového adresára webového servera Nginx.
Tu je koreň adresár je / usr / share / nginx / html /.
Tu by sa mali uchovávať všetky súbory z webových stránok. The index sady volieb index.html ako predvolený súbor, ktorý sa má používať, ak sa nevyžaduje žiadny konkrétny súbor. Napríklad ak navštívite http: // 192.168.20.175 / myfile.html, potom sa ti vráti Nginx myfile.html spis. Ak však navštívite stránku http: // 192.168.20.175 /, potom vám Nginx pošle index.html súbor, pretože nebol požadovaný žiadny konkrétny súbor.
Teraz odstráňte všetky súbory z priečinka / usr / share / nginx / html / adresár (webový root) takto:
$ sudo rm -rfv / usr / share / nginx / html / *
Teraz vytvorte nový index.html súbor v / usr / share / nginx / html / adresár takto:
Teraz zadajte nasledujúce riadky do index.html súbor a uložte súbor.
Ahoj svet
© 2020 LinuxHint.com
Teraz reštartujte nginx službu takto:
$ sudo systemctl reštart nginx
Teraz navštívte stránku http: // 192.168.20.175 z webového prehliadača a mala by sa vám zobraziť nasledujúca stránka. Gratulujem! Nastavili ste svoj prvý webový server Nginx.
Konfigurácia chybových stránok:
Chybové stránky môžete nakonfigurovať v Nginx. Ak napríklad stránka / súbor / adresár nie je k dispozícii, prehliadaču sa vráti stavový kód HTTP 404. Pre stavový kód HTTP 404, ktorý sa vráti späť do prehliadača, môžete nastaviť vlastnú chybovú stránku HTML.
Za týmto účelom pridajte nasledujúci riadok do súboru server časť nginx.konf spis.
server…
chyba_strana 404/404.html;
…
Teraz vytvorte súbor 404.html v koreňovom adresári webu Nginx / usr / share / nginx / html / nasledovne:
$ sudo nano / usr / share / nginx / html / 404.html
Teraz zadajte nasledujúce riadky do 404.html a uložte súbor.
Chyba 404
Stránka nenájdená
© 2020 LinuxHint.com
Teraz reštartujte nginx službu takto:
$ sudo systemctl reštart nginx
Teraz sa pokúste získať prístup k neexistujúcej ceste (http: // 192.168.20.175 / nopage.html) a mala by sa zobraziť nasledujúca chybová stránka.
Ak 404.html súbor je na inej ceste k súborovému systému (povedzme / usr / share / nginx / html / errors / adresár), môžete mapovať adresu URL / 404.html k tomu takto:
server…
chyba_strana 404/404.html;
umiestnenie / 404.html
root / usr / share / nginx / html / chyby;
…
Teraz vytvorte nový adresár / usr / share / nginx / html / errors / nasledovne:
$ sudo mkdir / usr / share / nginx / html / chyby
Teraz vytvorte nový súbor 404.html v adresári / usr / share / nginx / html / errors / nasledovne:
$ sudo nano / usr / share / nginx / html / errors / 404.html
Teraz zadajte nasledujúce riadky do súboru 404.html súbor a uložte súbor.
STRÁNKA NENÁJDENÁ
SPÄŤ DOMOV
Teraz reštartujte nginx službu takto:
$ sudo systemctl reštart nginx
Teraz sa pokúste získať prístup k neexistujúcej ceste (http: // 192.168.20.175 / nopage.html) a mali by ste vidieť aktualizovanú chybovú stránku.
Rovnakým spôsobom môžete nastaviť chybovú stránku pre ďalšie stavové kódy HTTP.
Rovnakú chybovú stránku môžete nastaviť aj pre viaceré stavové kódy HTTP. Napríklad na nastavenie rovnakej chybovej stránky / 404.html pre stavové kódy HTTP 403 a 404, Napíš stránka_chyb možnosť takto:
chyba_strana 403 404/404.html;Konfigurácia denníkov:
V Nginxe error_log a prístup_log možnosti sa používajú na zaznamenávanie chybových správ a prístupových informácií.
Formát súboru error_log a prístup_log možnosti sú:
error_log / path / to / error / log / file [voliteľné: custom-log-name];access_log / path / to / access / log / file [voliteľné: custom-log-name];
Môžete si definovať svoj vlastný protokol chýb a ak chcete, máte prístup k formátom protokolu.
Ak to chcete urobiť, použite log_format možnosť v http v časti definujte svoj vlastný formát protokolu nasledovne.
http…
log_format jednoduchý '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
…
server
…
prístupový_log / var / log / nginx / prístup.prihlásiť jednoduché;
…
Tu je názov formátu protokolu jednoduché. Niektoré premenné nginx sa používajú na definovanie vlastného formátu protokolu. Navštívte príručku vložených premenných Nginx, kde sa dozviete viac o všetkých premenných Nginx.
Vlastný formát protokolu by mal byť uvedený v jednoduchých úvodzovkách. Formát protokolu je možné definovať v jednom riadku alebo vo viacerých riadkoch. V tomto článku som ukázal, ako definovať formát protokolu vo viacerých riadkoch. Nebudete mať problémy s formátom protokolu s jedným riadkom, verte mi!
Raz formát protokolu jednoduché je definovaný, prístup_log Táto voľba slúži na nastavenie Nginxu, aby ho použil ako prístupový denník.
Rovnakým spôsobom môžete nastaviť vlastný formát protokolu chýb pomocou príkazu error_log možnosť.
V tomto článku som nakonfiguroval iba vlastný formát protokolu pre prístupový protokol.
Teraz reštartujte nginx službu takto:
$ sudo systemctl reštart nginx
Teraz môžete sledovať súbor denníka prístupu nasledovne:
$ sudo tail -f / var / log / nginx / prístup.log
Súbor denníka chýb môžete sledovať aj takto:
$ sudo tail -f / var / log / nginx / chyba.log
Ak chcete, môžete sledovať protokoly prístupu a súbory protokolov chýb súčasne nasledovne:
$ sudo tail -f / var / log / nginx / chyba, prístup.log
Ako vidíte, používa sa nový formát denníka prístupu.
Odmietnutie prístupu na určité cesty:
Môžete použiť regulárne výrazy, aby ste sa zhodovali s určitými cestami URI a zakázali im prístup v Nginx.
Povedzme, že váš web spravuje Git a vy chcete odmietnuť prístup k .git / adresár vo vašom webovom koreni.
Za týmto účelom zadajte nasledujúce riadky do súboru server časť / etc / nging / nginx.konf spis:
server…
umiestnenie ~ \.git
popierať všetkých;
…
Ako vidíte, prístup na akúkoľvek cestu, ktorá obsahuje .git je odmietnutý.
Konfigurácia kompresie:
Webový obsah môžete komprimovať pred jeho odoslaním do prehliadača pomocou gzip ušetriť využitie šírky pásma webového servera Nginx.
Mám niekoľko obrázkov JPEG v priečinku / usr / share / nginx / html / images / adresár.
K týmto obrázkom mám prístup pomocou cesty URI /snímky.
Povolenie kompresie gzip iba pre obrázky JPEG v ceste k identifikátoru URI /snímky, zadajte nasledujúce riadky do poľa server časť / etc / nginx / nginx.konf spis.
server…
umiestnenie / obrázky
gzip ďalej;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / jpeg;
…
Tu, gzip_comp_level sa používa na nastavenie úrovne kompresie. Môže to byť akékoľvek číslo od 1 do 9. Čím vyššia úroveň, tým menší bude komprimovaný súbor.
Súbor bude komprimovaný, iba ak je veľkosť súboru vyššia gzip_min_length. V tomto príklade som to nastavil na asi 100 KB. Súbory JPEG menšie ako 100 KB teda nebudú komprimované vo formáte gzip.
The gzip_types sa používa na nastavenie mime typu súborov, ktoré budú komprimované.
Typ mime z prípon súborov nájdete nasledovne:
$ grep jpg / etc / nginx / mime.typyAko vidíte, pre .jpg alebo .jpeg prípona súboru, typ mime je obrázok / jpeg.
Môžete nastaviť jeden alebo viac typov MIME pomocou gzip_types možnosť.
Ak chcete nastaviť viac typov MIME, nezabudnite ich oddeliť medzerami nasledovne:
„obrázok typu gzip / obrázok jpeg / obrázok png / gif;
Teraz reštartujte nginx službu takto:
$ sudo systemctl reštart nginx
Ako vidíte, Nginx na požiadanie odošle do prehliadača komprimované obrazové súbory vo formáte gzip.
Ako vidíte na obrázku nižšie, komprimovaný súbor gzip je menší ako pôvodný súbor.
$ sudo tail -f / var / log / nginx / prístup.log
Povolenie protokolu HTTPS:
SSL v Nginxe môžete povoliť veľmi ľahko. V tejto časti vám ukážem, ako nastaviť certifikát SSL s vlastným podpisom v Nginx.
Najskôr prejdite na ikonu / etc / ssl / adresár takto:
$ cd / etc / ssl
Teraz vygenerujte kľúč SSL server.kľúč a certifikát server.crt nasledujúcim príkazom:
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyoutserver.kľúčový server.crt
POZNÁMKA: Musíš mať openssl nainštalovaný, aby to fungovalo. Ak príkaz openssl nie je k dispozícii, nainštalujte ho openssl nasledujúcim príkazom:
$ sudo dnf install openssl -yTeraz zadajte svoj dvojpísmenový kód krajiny (t.j.e. USA pre USA, Spojené kráľovstvo pre Spojené kráľovstvo, RU pre Rusko, CN pre Čínu) a tlač
Teraz zadajte svoj štát alebo provinciu a stlačte
Teraz zadajte svoje mesto a stlačte
Teraz zadajte svoj názov spoločnosti a stlačte
Teraz zadajte názov organizačnej jednotky vašej spoločnosti, ktorá bude tento certifikát používať, a stlačte
Teraz zadajte plne kvalifikovaný názov domény (FQDN) svojho webového servera Nginx a stlačte
Teraz zadajte svoju e-mailovú adresu a stlačte
Váš certifikát SSL by mal byť pripravený.
SSL certifikát a kľúč by mali byť generované v / etc / ssl / adresár.
$ ls -lh
Teraz otvorte konfiguračný súbor Nginx / etc / nginx / nginx.konf a zmeniť počúvaj prístav do 443 a zadajte nasledujúce riadky do server oddiel.
server…
ssl ďalej;
ssl_certifikát / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.kľúč;
…
Teraz reštartujte nginx službu takto:
$ sudo systemctl reštart nginx
V skutočnom živote budete mať správne nastavenie DNS. Ale na účely testovania som nakonfiguroval lokálny názov domény založený na súbore v počítači, z ktorého som používal prístup na webový server Nginx.
Ak chcete pokračovať, otvorte / etc / hostitelia súbor nasledovne:
$ sudo nano / etc / hosts
Potom pridajte nasledujúci riadok do / etc / hostitelia spis.
192.168.20.175 www.príklad.com
Teraz skúste navštíviť stránku https: // www.príklad.com a mala by sa ti zobraziť nasledujúca stránka. Uvidíš Vaše pripojenie nie je zabezpečené správa, pretože ide o certifikát s vlastným podpisom. To je dobré iba na testovacie účely.
V reálnom živote budete kupovať certifikáty SSL od certifikačných autorít (CA) a používať ich. Tento typ správy teda neuvidíte.
Ako vidíte, Nginx poskytoval webovú stránku prostredníctvom protokolu HTTPS. SSL teda funguje.
Informácie SSL z www.príklad.com.
Presmerovanie požiadaviek HTTP na HTTPS:
Ak niekto navštívi váš web pomocou protokolu HTTP (http: // www.príklad.com alebo http: // 192.168.20.175) namiesto HTTPS (https: // www.príklad.com), nechcete odmietnuť požiadavku HTTP. Ak to urobíte, stratíte návštevníka. Čo by ste skutočne mali urobiť, je presmerovať používateľa na web s povoleným protokolom SSL. Je to naozaj jednoduché.
Najskôr otvorte konfiguračný súbor Nginx / etc / nginx / nginx.konf a vytvoriť nový server časť vo vnútri http časť takto:
http…
server
počúvať 80;
názov_serveru www.príklad.com;
návrat 301 https: // www.príklad.com $ request_uri;
…
Toto je finále / etc / nginx / nginx.konf spis:
užívateľ nginx nginx;worker_processes auto;
error_log / var / log / nginx / chyba.guľatina;
pid / run / nginx.pid;
diania
worker_connections 1024;
http
zahrnúť / etc / nginx / mime.typy;
predvolený typ aplikácie / octet-stream;
log_format jednoduchý '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
server
počúvať 80;
názov_serveru www.príklad.com;
návrat 301 https: // www.príklad.com $ request_uri;
server
počúvať 443;
názov_serveru www.príklad.com;
ssl ďalej;
ssl_certifikát / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.kľúč;
prístupový_log / var / log / nginx / prístup.prihlásiť jednoduché;
miesto /
root / usr / share / nginx / html;
indexový index.html;
umiestnenie / obrázky
gzip ďalej;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / jpeg;
chyba_strana 404/404.html;
umiestnenie / 404.html
root / usr / share / nginx / html / chyby;
umiestnenie ~ \.git
popierať všetkých;
Teraz reštartujte nginx službu takto:
$ sudo systemctl reštart nginx
Teraz, ak sa pokúsite získať prístup na adresu http: // 192.168.20.175 alebo http: // www.príklad.com, budete presmerovaný na https: // www.príklad.com.
Takto teda inštalujete a konfigurujete webový server Nginx na serveri CentOS 8. Ďakujeme, že ste si prečítali tento článok.