Oktatóanyagok > Hogyan telepíthető az NGINX Ubuntu 18.04-re?

Hogyan telepíthető az NGINX Ubuntu 18.04-re?

Közzétéve: 16 január 2020

NGINX Ubuntu Web Server

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:

$ sudo apt update

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:

$ sudo ufw app list

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ő.

NGINX Page

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