Instalación, configuración e uso de nginx
Sumario
- 1 Prerrequisitos
- 2 Hosting
- 3 Dominio e configuración DNS
- 4 Conexión á máquina por SSH ou VNC
- 5 Instalación de Nginx
- 6 Comprender o funcionamento
- 7 Configuración do firewall
- 8 Comprobación de logs
- 9 Configuración dun server block
- 10 Engadir un server block
- 11 Troubleshooting
- 12 Ampliación
- 13 Referencias
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):
Redireccións a outros dominios
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:
IPv6 e titorial para configuración
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:
- Introducir IP da máquina
- Introducir usuario e contrasinal
- 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
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