Com instal·lar el servidor web Nginx a Ubuntu 20.04


Nginx és un servidor web de codi obert i d'alt rendiment que domina una gran quota de mercat en entorns de producció. És un servidor web lleuger i robust que s'utilitza principalment per allotjar llocs web d'alt trànsit.

Lectura relacionada: Com instal·lar el servidor web Apache a Ubuntu 20.04

En aquesta guia, aprendràs a instal·lar el servidor web Nginx i a configurar el bloc del servidor Nginx (amfitrions virtuals) a Ubuntu 20.04 LTS.

Per començar, assegureu-vos que teniu una instància d'Ubuntu 20.04 LTS amb accés SSH i un usuari de Sudo amb privilegis root. A més, es recomana una connexió estable a Internet per instal·lar paquets Nginx.

Instal·lació de Nginx a Ubuntu 20.04

1. Abans d'instal·lar Nginx, actualitzeu les llistes de paquets del vostre servidor.

$ sudo apt update

2. A continuació, instal·leu Nginx executant l'ordre:

$ sudo apt install nginx

Quan se us demani que continueu, premeu Y al teclat i premeu INTRO. La instal·lació es farà en pocs segons.

3. Amb Nginx instal·lat correctament, podeu iniciar-lo i verificar-lo executant:

$ sudo systemctl start nginx
$ sudo systemctl status nginx

La sortida anterior indica clarament que Nginx s'està executant.

4. Per comprovar la versió de Nginx, executeu:

$ sudo dpkg -l nginx

La sortida indica que estem executant Nginx 1.17.10, que és la darrera versió en el moment de redactar aquest article.

Obriu els ports Nginx al tallafoc UFW

Ara que teniu Nginx instal·lat i funcionant com s'esperava, calen alguns ajustos perquè es pugui accedir a Nginx mitjançant un navegador web. Si esteu executant el tallafoc UFW, heu de permetre el perfil de l'aplicació Nginx.

Hi ha 3 perfils Nginx associats amb el tallafoc ufw.

  1. Nginx Full: obre tant el port 80 com el 443 (per a l'encriptació SSL/TLS).
  2. Nginx HTTP: aquest port només obert 80 (per al trànsit web sense xifrar).
  3. Nginx HTTPS: només obre el port 443 (per a l'encriptació SSL/TLS).

5. Comenceu activant el tallafoc a Ubuntu 20.04.

$ sudo ufw enable

6. De moment, com que no estem en un servidor xifrat, només permetrem el perfil HTTP Nginx que permetrà el trànsit al port 80.

$ sudo ufw allow 'Nginx HTTP'

7. A continuació, torneu a carregar el tallafoc perquè els canvis persisteixin.

$ sudo ufw reload

8. Ara comproveu l'estat del tallafoc per verificar els perfils que s'han permès.

$ sudo ufw status

Provant el Nginx a Ubuntu 20.04

Nginx s'executa al navegador com es podria esperar amb qualsevol servidor web i la manera més segura de provar si s'executa com s'esperava és enviar sol·licituds mitjançant un navegador.

9. Així que aneu al vostre navegador i navegueu per l'adreça IP o el nom de domini del servidor. Per comprovar la IP del vostre servidor, executeu l'ordre ifconfig:

$ ifconfig

10. Si esteu en un servidor al núvol, executeu l'ordre curl següent per recuperar la IP pública del servidor.

$ curl ifconfig.me

11. Al camp d'URL del vostre navegador, introduïu l'adreça IP o el nom de domini del vostre servidor i premeu INTRO.

http://server-IP or domain-name

Hauríeu d'obtenir una pàgina de benvinguda predeterminada de Nginx tal com es mostra.

Gestioneu el procés Nginx a Ubuntu 20.04

12. Per aturar el servidor web Nginx, només cal que executeu:

$ sudo systemctl stop nginx

13. Per tornar a activar el servidor web, executeu:

$ sudo systemctl start nginx

14. Per iniciar automàticament Nginx a l'arrencada o a una execució de reinici:

$ sudo systemctl enable nginx

15. Si voleu reiniciar el servidor web especialment després de fer canvis als fitxers de configuració, executeu:

$ sudo systemctl restart nginx

16. Alternativament, podeu tornar a carregar per evitar que es perdin les connexions tal com es mostra.

$ sudo systemctl reload nginx

Configuració del bloc del servidor Nginx a Ubuntu 20.04

Si teniu previst allotjar més d'un lloc al vostre servidor, és molt recomanable configurar un bloc de servidor Nginx. El bloc del servidor és l'equivalent a l'amfitrió virtual d'Apache.

De manera predeterminada, Nginx s'envia amb el seu bloc de servidor predeterminat que està configurat per oferir contingut web a la ruta /var/www/html.

Crearem un bloc Nginx independent per servir el contingut del nostre domini. Per a aquesta guia, farem servir el domini crazytechgeek.info.
Per al vostre cas, assegureu-vos de substituir-lo pel vostre propi nom de domini.

17. Per crear un fitxer de bloqueig del servidor, primer, creeu un directori per al vostre domini tal com es mostra.

$ sudo mkdir -p /var/www/crazytechgeek.info/html

18. A continuació, assigneu la propietat al directori nou mitjançant la variable $USER.

$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

19. Assegureu-vos que també assigneu els permisos de directori en conseqüència, permetent al propietari tenir tots els permisos (llegir, escriure i executar) i concedint a altres parts només permisos de lectura i execució.

$ sudo chmod -R 755 /var/www/crazytechgeek.info

20. Dins del directori del domini, creeu un fitxer index.html que contindrà el contingut web del domini.

$ sudo vim /var/www/crazytechgeek.info/html/index.html

Enganxeu el contingut següent al fitxer de prova de mostra.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

Deseu els canvis i sortiu del fitxer.

21. Perquè el servidor web Nginx pugui servir el contingut que acabeu d'afegir, heu de crear un bloc de servidor amb les directives adequades. En aquest cas, hem creat un nou bloc de servidor a:

$ sudo vim /etc/nginx/sites-available/crazytechgeek.info

Enganxeu la configuració que es mostra.

server {
        listen 80;
        listen [::]:80;

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info  www.crazytechgeek.info;

        location / {
                try_files $uri $uri/ =404;
        }
}

Guardar i sortir.

22. Ara activeu el fitxer de bloqueig del servidor enllaçant-lo al directori habilitat per a llocs des del qual el servidor Nginx llegeix a l'inici.

$ sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

23. Perquè es realitzin els canvis, reinicieu el servidor web Nginx.

$ sudo systemctl restart nginx

24. Només per assegurar-vos que totes les configuracions estan en ordre, executeu l'ordre:

$ nginx -t

Si totes les configuracions estan en ordre, hauríeu d'obtenir la sortida que es mostra a continuació:

25. El servidor web Nginx hauria de servir ara el contingut del vostre domini. Una vegada més, aneu al vostre navegador i navegueu pel domini del vostre servidor.

http://domain-name

El vostre contingut personalitzat al directori del vostre domini es publicarà tal com es mostra.

Fitxers de configuració importants de Nginx

Abans d'acabar, és crucial que examinem alguns dels fitxers de configuració importants associats a Nginx.

  • /etc/nginx/nginx.conf: aquest és el fitxer de configuració principal. Podeu modificar la configuració per satisfer els requisits del vostre servidor.
  • /etc/nginx/sites-available: aquest és el directori que emmagatzema la configuració del bloc del servidor. Nginx només utilitza els blocs del servidor si estan enllaçats al directori habilitat per a llocs.
  • /etc/nginx/sites-enabled: el directori conté blocs de servidor Nginx per lloc que ja estan habilitats.

Hi ha dos fitxers de registre principals que podeu utilitzar per solucionar problemes del vostre servidor web Nginx:

  • /var/log/nginx/access.log: registra totes les sol·licituds fetes al servidor web.
  • /var/log/nginx/error.log: aquest és el fitxer de registre d'errors i registra tots els errors que troba Nginx.

Hem arribat al final d'aquest tutorial. Hem mostrat com podeu instal·lar Nginx a Ubuntu 20.04 i com podeu configurar els blocs del servidor Nginx per servir el contingut del vostre domini. Els vostres comentaris són benvinguts.