Com instal·lar Nginx a Ubuntu 20.04 LTS

Guia completa pas a pas per instal·lar i configurar un servidor web Nginx en un sistema Ubuntu 20.04

Nginx és un servidor web de codi obert i popular proxy invers disponible en diverses plataformes. El programari va ser desenvolupat per Igor Sysoev com a solució al problema C10K i es va publicar per primera vegada el 2004. El problema C10K és el problema de gestionar deu mil clients simultàniament, cosa que no era gens fàcil a principis dels anys 2000.

En aquest tutorial, veurem com instal·lar i configurar Nginx a Ubuntu 20.04 LTS.

Requisits previs

Un sistema amb Ubuntu 20.04 instal·lat i a sudo usuari. A més, no heu de tenir cap altre servidor web com Apache que s'executi al port 80 o 443.

Instal·lant Nginx

Nginx està disponible al repositori Ubuntu 20.04 i apt El gestor de paquets es pot utilitzar per instal·lar-lo. Per tant, per instal·lar Nginx obriu el terminal utilitzant ctrl+alt+t i córrer:

sudo apt update && sudo apt install nginx

La instal·lació es completarà aviat i el dimoni Nginx començarà automàticament en segon pla. Per tant, per comprovar l'estat de Nginx, executeu:

estat sudo systemctl nginx

Després d'executar l'ordre anterior, hauríeu d'obtenir l'estat de Nginx com a actiu (executant) en verd com es veu a continuació.

Configuració del tallafoc d'Ubuntu (UFW)

Per defecte, els ports de sortida HTTP (80) i HTTPS (443) estan tancats a Ubuntu 20.04. A més, el dimoni del tallafoc predeterminat ufw està desactivat perquè tots els ports estan tancats.

Per tant, per accedir al servidor Nginx des d'altres sistemes, haureu d'habilitar ufw i configureu-lo correctament per permetre el trànsit al port 80 i 443. Abans d'activar ufw, sabeu que si esteu configurant Nginx en un servidor remot, primer actualitzeu el ufw normes per permetre ssh executant:

sudo ufw permet ssh

L'ordre anterior permet ssh accés al servidor remot, sense permetre-ho ssh se us bloquejarà al servidor remot.

Després d'habilitar ssh accés, podeu habilitar el ufw dimoni del tallafoc executant:

sudo ufw enable

Ara, heu de canviar les regles del tallafoc per permetre els ports HTTP i HTTPS perquè Nginx pugui servir el trànsit web. Per canviar les regles, executeu:

sudo ufw permet "Nginx Full"

Nginx complet permet tant els ports HTTP com HTTPS per al trànsit entrant i sortint de totes les adreces IP.

Després d'això, comproveu si les regles s'han afegit correctament ufw tallafoc executant l'ordre:

estat sudo ufw

L'ordre anterior mostrarà les regles a les quals hem afegit ufw dimoni del tallafoc.

Connexió al servidor Nginx

Ara que hem instal·lat i configurat Nginx ufw per permetre el trànsit web HTTP i HTTPS entrant, hauríeu de poder accedir al servidor Nginx mitjançant l'adreça IP del servidor.

Si no coneixeu l'adreça IP del servidor, utilitzeu l'ordre següent per recuperar-la fàcilment.

adreça ip mostra eth0 | grep inet | awk '{ imprimir $2; }' | sed 's/\/.*$//'

Un cop tingueu l'adreça IP, enganxeu-la al vostre navegador i premeu Enter.

//la-vostra-ip-del-servidor

Si tot s'ha configurat correctament, hauríeu de poder veure la pàgina web "Benvingut a nginx!".

Fitxers i directoris Nginx

Ara que tenim Nginx instal·lat i en execució al vostre servidor. Fem una ullada a alguns dels fitxers i directoris importants de Nginx que haureu d'utilitzar per configurar el vostre lloc web/aplicació web.

Contingut del servidor web

Podeu configurar qualsevol ubicació que vulgueu que sigui el vostre directori arrel per al vostre bloc de servidor. L'HTML predeterminat de Nginx és directament /var/www/html, és on es troba la pàgina de "benvinguda" a la qual hem accedit anteriorment.

Altres ubicacions que s'utilitzen normalment com a directori arrel per als dominis inclouen:

  • /casa//
  • /var/www/html/
  • /opta/

Fitxers de configuració Nginx

Tots els fitxers de configuració de Nginx es troben a /etc/nginx directori. Vegem alguns dels fitxers importants que necessitem per configurar un domini bàsic.

  • /etc/nginx/nginx.conf: Aquest fitxer conté tota la configuració necessària per executar Nginx.
  • /etc/nginx/sites-available/: Aquest directori té tota la configuració de blocs de servidors dels dominis, però actualment no estan habilitats/desplegats i, per tant, no són accessibles pels clients.
  • /etc/nginx/sites-enabled/: aquest directori conté dominis actius/habilitats actualment als quals els clients poden accedir. Per habilitar un domini hem d'enllaçar el fitxer de configuració del domini des de llocs-disponibles fins al llocs habilitats directori.
  • /etc/nginx/snippets/: En aquest directori, podem emmagatzemar segments de configuració potencialment reutilitzables. Estalvia molt de temps en l'entorn de producció a causa del fet que pot fer que els segments/blocs de configuració siguin reutilitzables.

Registres del servidor

Nginx registra els esdeveniments/activitats i els emmagatzema en fitxers de registre al fitxer /var/log/nginx directori. Nginx registra activitats en aquests fitxers:

  • /var/log/nginx/access.log: Aquest fitxer registra els clients que han accedit al servidor Nginx. Els detalls inclouen l'adreça IP del client, l'hora i la data, el navegador utilitzat per accedir al servidor i el sistema operatiu.
  • /var/log/nginx/error.log: aquest fitxer registra els errors trobats pel servidor Nginx durant l'execució.

Per tant, en aquesta secció, hem analitzat breument alguns dels fitxers i directoris importants de Nginx que són suficients per començar.

Configuració de blocs de servidors

Ara que tenim coneixements bàsics sobre els fitxers i el servidor Nginx, estem preparats per configurar el nostre propi bloc de servidors. Els blocs de servidor són similars als amfitrions virtuals d'Apache.

Veurem com crear un bloc de servidor i demostrarem que farem servir exemple.com com a domini en procés de creació.

💡 Substituïu exemple.com amb el teu nom de domini.

Abans de començar a configurar els blocs del servidor, hem de crear un directori que serveixi de directori arrel per al contingut del lloc web. Anem a crear /var/www/example.com/html directori per utilitzar el domini mkdir comandament.

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

El -p L'opció crearà tots els directoris principals necessaris. És a dir, crearà exemple.com un directori principal a html si no existeix.

Canvia la propietat del directori amb el $USER variable d'entorn:

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

A continuació, creeu un senzill index.html fitxer al qual s'accedirà quan visiteu el domini que s'està configurant. Això només té finalitats explicatives.

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

Enganxeu el següent contingut al fitxer que acabem de crear al servidor.

  Benvingut a example.com! 

Jo! L'exemple.com és accessible!

Premeu ctrl+o per escriure i guardar el index.html fitxer i, a continuació, premeu ctrl+x per sortir nano editor.

Ara, finalment, podem passar a crear un bloc de servidors, de manera que Nginx pugui servir index.html quan algun usuari va a exemple.com. Per tant, per crear un bloc de servidor hem de fer un fitxer de configuració anomenat exemple.com en llocs-disponibles directori. Per fer-ho, fem servir nano i executem:

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

I després, escriviu o copieu/enganxeu la configuració següent. A continuació, premeu ctrl+o i entra per escriure i guardar. De la mateixa manera, premeu ctrl+x per tancar l'editor nano.

servidor { escolta 80; escoltar [::]:80; nom_servidor example.com www.example.com; arrel /var/www/example-domain.com/html; índex index.html; ubicació / { try_files $uri $uri/ =404; } }

La configuració anterior és similar a la configuració predeterminada del bloc del servidor, hem canviat arrel declaració per apuntar al nostre nou directori arrel i canviar el fitxer nom_servidor al nostre nom de domini. Mentre que ubicació{} La declaració serveix com a declaració de captura d'error si no es troben els fitxers i mostra l'error 404 al client.

A continuació, podem habilitar el nostre bloc de servidors perquè Nginx serveixi exemple.com pàgines web. Per habilitar el nostre bloc de servidors hem de crear un enllaç simbòlic de exemple.com fitxer de llocs-disponibles a llocs habilitats directori. Per fer-ho, executeu:

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

Es crearà un enllaç a habilitat per al lloc directori i ara exemple.com hauria d'estar habilitat. Ara tenim dos blocs de servidors activats al nostre servidor Nginx que respondran a la sol·licitud en funció escolta i nom_servidor directrius guardades exemple.com configuració del bloc del servidor.

Per comprovar si tots els fitxers de configuració són correctes i no hi ha cap error de sintaxi, executeu:

sudo nginx -t

Ara, finalment reinicieu Nginx per aplicar els canvis executant l'ordre següent:

sudo systemctl reinicieu nginx

Nginx començarà a servir el vostre bloc de servidor ara, podeu anar a //el-vostre-nom-de-domini i veure la teva pàgina web en directe.

Nota: Perquè la secció anterior funcioni, haureu de configurar el vostre propi domini i substituir-lo exemple.com amb el teu propi nom de domini. A més, haureu de configurar el DNS per al vostre domini perquè apunti a l'adreça IP del vostre servidor Nginx.

Per concloure, hem vist com instal·lar Nginx, configurar ufw Per permetre l'accés remot al servidor Nginx, connectat a Nginx de forma remota, es va familiaritzar amb alguns fitxers i directoris bàsics de Nginx i va aprendre a configurar un bloc de servidor.

Per conèixer i obtenir més informació sobre Nginx, potser voldreu veure la wiki de Nginx.