Instalación, configuración e uso de nginx

De MediaWiki
Ir a la navegación Ir a la búsqueda
Nginx logo.png
Namecheap logo.png


Debian-OpenLogo.png
Contabo Logo.jpg

Prerrequisitos

A práctica pode levarse a cabo a través de máquinas virtuais en entorno local.

No aquí detallado, fíxose a través da contratación dun VPS (Virtual Private Server) en Contabo e do dominio aclasedopeque.com en namecheap.com. Os cuestos de ambos non chegaron os 10€.

O sistema operativo utilizado foi Debian 11.

Podes atopar na web de contabo máis información sobre qué e un VPS.

Para todo o que imos facer a continuación, partiremos de que estamos traballando cun usuario root. Isto é en xeral unha mala práctica; en contornas de produción e mellor traballar cun usuario sen privilexios e elevar os mesmos mediante sudo so cando é preciso.

Tes máis información sobre o usuario root na web de contabo

Hosting

En contabo, no momento de escritura deste artigo, hay opcións moi económicas por 4€ ou 5€ o mes. No noso caso optamos pola opción máis económica (sendo posible obter un prezo todavía mellor se o pagamento se fai anual en lugar de mensual):

Algunhas reflexións interesantes para avaliar as diferentes opcións no refennte os discos duros se pensasemos nun proxecto real en producción:

Tamén pode ser interesante coñecer os paneles de administración que poden facilitar algunhas tarefas:

Pasadas unhas horas, chegará un correo electrónico cos datos de acceso:

Hai algunhas indicacións iniciais de como empezar a traballar:

Dominio e configuración DNS

A contratación do dominio fíxose con co proveedor namecheap.

Algúns enlaces de referencia para a configuración DNS:

Conexión á máquina por SSH ou VNC

SSH

Pódese levar a cabo con calquer cliente SSH, coma Putty ou o cliente multiplataforma Termius:

En ambos casos será preciso:

  1. Introducir IP da máquina
  2. Introducir usuario e contrasinal
  3. Aceptar que se confía na conexión

Pódese consultar o titorial do proveedor para máis información.

INTERESANTE. Tamén e boa a recomendación que se da respecto o uso de chaves SSH no canto de constrasinais.
From a security standpoint, we recommend all customers to use SSH Keys instead of traditional passwords while connecting via SSH. SSH Keys are like a “keycard” to access your server without a password. Read our in-depth SSH Keys tutorial to learn how to generate the keys, upload them on your server and set up all necessary parameters.

VNC

No correo de benvida podemos atopar a información cos parámetros requiridos para coa conexión VNC. Pódese realizar con diferentes clientes, e neste caso utilizaremos UltraVNC.


Pódese consultar o titorial do proveedor para máis información.

Coma se indica alí, e preferible a conexión por SSH por cuestións de seguridade.

While VNC technology is very convenient and easy to use, it’s not ideal from a security standpoint.
Please keep in mind that VNC access is not as safe as a connection via SSH or Windows Remote Desktop. Under normal circumstances, you should always connect to your server using methods that are more secure.
We recommend using VNC only in case your server is not accessible via SSH or Remote Desktop.

Instalación de Nginx

Para levar a cabo a instalación actualizamos o repositorio e instalamos o paquete nginx:

apt update
apt install nginx -y

Comprobamos que queda levantado:

systemctl status nginx

Comprender o funcionamento

Podemos instalar o comando tree que amosa os ficheiros xerárquicamente estruturados por cartafois:

apt install tree

Accedemos a carpeta onde queda instalado nginx:

cd /etc/nginx

Podemos executar tree para ver a estrutura de carpetas e ficheiros do programa:

tree .


conf.d configuraciones propias de nuestro servidor modules-enabled modulos que queramos activar proxy_params parámetros del proxy nginx.com No tocar. Configuración global. cd sites-available/ cat default cd ../sites_enabled contiene enlaces simbolicos (un acceso directo que apunta al fichero real) nano default encriptacion punto a punto con nginx nano ngingx.conf


Configuración do firewall

Para instalar ufw:

apt install ufw

Para comprobar o seu estado:

ufw status
Na captura vense as regras e algunhas outras (por exemplo 3306 é o porto por defecto de MySQL

Para levantalo:

ufw enable

Para fixar reglas que permitan tráfico http e https:

ufw allow 22
ufw allow 80
ufw allow 443
ufw allow ssh
ufw allow http
ufw allow https

Para comprobar estado e recargar o firewal coas novas regras:

ufw status
ufw reload

Comprobación de logs

nano nginx.conf

Podemos observar onde se ubican as rutas de access_log e error_log, e consultar os mesmos:

cd /var/log/nginx/
pico access.log
pico error.log

Configuración dun server block

Un server block en nginx e o equivalente os denominados virtual host en Apache.

Vemos la web por defecto:

cd /var/www/html
pico index.nginx-debian.html

Cualquier cambio que hagamos y guardemos en este fichero se verá reflejado cuando accedamos a través del navegador.

Accedemos a sites-available:

cd /etc/nginx/sites-avaible

Podemos ver a configuración da web por defecto:

pico default

MOI IMPORTANTE. Unha vez feitos cambios e preciso recargalos co comando:

systemctl restart nginx

Engadir un server block

cd /etc/nginx/sites-avaible
pico aclasedopeque.com                                                        
server {
 server_name aclasedopeque.com www.aclasedopeque.com;

 root /var/www/aclasedopeque.com/htdocs;
}
cd /etc/nginx/sites-avaible
ln -s /etc/nginx/sites-available/aclasedopeque.com /etc/nginx/sites-enabled/aclasedopeque.com
systemctl restart nginx

Si accedemos a través del navegador, por ahora error 404 porque no existe la ruta /var/www/aclasedeopeque.com/htdocs.

 cd /var/www/
 mkdir aclasedopeque.com
 cd aclasedopeque.com
 mkdir htdocs
 cd htdocs
 pico index.html
 <h1>Esto es una prueba! </h1>

Accedemos co navegador a aclasedopeque.com ou www.aclasedopeque.com e amosa o texto:

Troubleshooting

Ferramentas de rede

ping, traceroute,nslookup, host, dig

systemctl

Podes comprobar o estado do servizo con:

systemctl status nginx

E sempre e preciso reinicialo tras facer cambios con:

systemctl restart nginx

nginx -t

Para axuda na procura de erros de sintaxe nos ficheiros de configuración existe este comando:

nginx -t

revisar ficheiros de configuración

Acceder a ruta:

cd /etc/nginx/conf.d

Aquí poderíanse engadir novos ficheiros de configuración.

erros frecuentes

  • duplicate default server error. Ver este fío

Ampliación

Referencias