Az NGINX egy nagy teljesítményű webszerver, amelyet statikus fájlok kezelésére és fordított proxyként is használnak. Sokoldalúságára utal, az NGINX bármilyen helyzetben használható. Ebben az útmutatóban bemutatjuk, hogyan kell telepíteni a kiszolgálóra, és hogyan kell beállítani két vagy több domainhez.
Először csatlakozzon a szerverhez SSH kapcsolaton keresztül. Ha még nem tette meg, akkor ajánlott átböngésznie a Hogyan javítható az SSH biztonság az Ubuntu 18.04-en? útmutatónkat a folyamat megkezdése előtt. Helyi szerver esetén folytassa a következő lépéssel, és nyissa meg a szerver terminált.
Az NGINX telepítése
Frissítse a disztribúciós repókat, hogy biztosan az NGINX legújabb verzióját tölthesse le:
Futtassa a következő parancsot az NGINX csomag telepítéséhez:
$ sudo apt install nginx
A telepítés befejezése után indítsa el a szolgáltatást és telepítse a rendszerre:
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
A tűzfal beállítása
A rendszer tűzfala esetén állítsa be úgy, hogy engedélyezze a HTTP forgalmat és a HTTPS forgalmat a számítógépére.
Az UFW tűzfal használatakor az NGINX számára előre telepített profilok kerülnek rendelkezésre. Tehát lássuk, hogyan lehet őket bekapcsolni.
Az UFW tűzfalon telepített elérhető profilok ellenőrzéséhez futtassa a következő parancsot:
Az alábbiakhoz hasonló lista jelenik meg a képernyőn:
Available applications:
Dovecot IMAP
Dovecot POP3
Dovecot Secure IMAP
Dovecot Secure POP3
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
A HTTP (80 port) és a HTTPS (443 port) forgalom engedélyezéséhez használja az "Nginx Full" profilt.
Ellenőrizze profilinformációit az alább látható módon:
$ sudo ufw app info "Nginx Full"
A profil leírása megjelenik a képernyőn:
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server
Ports:
80,443/tcp
A profil ellenőrzése után készen áll arra, hogy engedélyezze azt:
$ sudo ufw allow in "Nginx Full"
Ezen a ponton befejeződött az NGINX és a tűzfal konfigurálása. Tesztelje a webszervert a http: // <SERVER.IP> címen, vagy helyi szerver esetén : http: // localhost . Ha az eljárást helyesen hajtották végre, akkor megjelenik az alapértelmezett NGINX képernyő.
Két domain/webhely helyes beállítása:
Az alábbiakban bemutatjuk, hogyan konfigurálhat két virtuális gazdagépet (úgynevezett "szerver blokkok"), hogy két teljesen különálló webtér legyen. Ebben a példában két fiktív domaint fogunk használni:
-
www.yourdomain.com
-
www.yourdomain2.com
Mindkét A rekordnak a szerver nyilvános IP-címére kell mutatnia.
Először hozzon létre minden szükséges mappát webhelye nyilvános fájljainak tárolására:
$ sudo mkdir /var/www
$ sudo mkdir /var/www/yourdomain.com
$ sudo mkdir /var/www/yourdomain.com/htdocs
$ sudo mkdir /var/www/yourdomain.com/logs
$ sudo mkdir /var/www/yourdomain2.com
$ sudo mkdir /var/www/yourdomain2.com/htdocs
$ sudo mkdir /var/www/yourdomain2.com/logs
Ideiglenes tartalomként másolja az alapértelmezett NGINX oldalt az egyes domainek htdocs mappáiba:
$ sudo cp /usr/share/nginx/html/* /var/www/yourdomain.com/htdocs/
$ sudo cp /usr/share/nginx/html/* /var/www/yourdomain2.com/htdocs/
Most folytassa az NGINX tényleges konfigurációjával. Az NGINX általában olvassa az .etf fájlokat az /etc/nginx/conf.d/ könyvtárban; folytassa két fájl létrehozásával (domainenként egy), és nevezze el őket:
-
yourdomain_com.conf
-
yourdomain2_com.conf
Kedvenc szövegszerkesztőjével írja be a következő konfigurációt a domain_com.conf fájlba:
server {
listen 80;
server_name yourdomain.com *.yourdomain.com;
root /var/www/yourdomain.com/htdocs;
access_log /var/www/yourdomain.com/logs/access.log main;
error_log /var/www/yourdomain.com/logs/error.log warn;
}
Nyilvánvaló, hogy hasonló konfigurációt kell használnia a sajátdomain2_com.conf fájlhoz is:
server {
listen 80;
server_name yourdomain2.com *.yourdomain2.com;
root /var/www/yourdomain2.com/htdocs;
access_log /var/www/yourdomain2.com/logs/access.log main;
error_log /var/www/yourdomain2.com/logs/error.log warn;
}
A virtuális domain fájljainak gyökérmappájának beállításán kívül vannak olyan beállítások is, amelyek a naplófájlok elérési útjainak (hozzáférés és hiba) konfigurálását teszik lehetővé, hogy domainenként egy napló legyen. Általában az NGINX az összes naplót a / var / log / nginx / könyvtárba menti, de több domain esetén az eredmény zavaró lehet.
A naplók idővel túlságosan nagyok lehetnek, ha útvonalukat megváltoztatják, ezért a legrégebbi tartalmak kiküszöbölése érdekében be kell állítani a fájlok forgatását. Ehhez használja a logrotate szoftvert.
Új naplófájlok hozzáadásához a logrotate beállításaihoz, szerkessze a /etc/etc/logrotate.d/nginx fájlt:
/var/log/nginx/*log {
create 0644 nginx nginx
daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
endscript
}
AMint láthatja, már létezik egy konfiguráció az NGINX fájloknak a / var / log / nginx mappában. A fájl első részének az alábbiak szerint történő módosításával járjon el:
/var/log/nginx/*log
/var/www/*/logs/* {
...
}
A változtatás elvégzése után a logrotate kezeli a /var/www/mydomain.it és az /var/www/maradomain.com (és minden más) naplómappáiban lévő összes fájlt anélkül, hogy aggódnia kellene a többi domain mellett, amely a jövőben hozzáadhatjuk.
A módosítás befejezése után indítsa újra a szolgáltatást:
$ sudo systemctl reload nginx