Instalación, configuración e uso de nginx
Sumario
- 1 Prerequisitos
- 2 Hosting
- 3 Dominio e configuración DNS
- 4 Conexión á máquina por SSH
- 5 Instalación
- 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 Esto es una prueba!
- 12 Troubleshooting
- 13 Ampliación
- 14 Referencias
Prerequisitos
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. O sistema operativo utilizado foi Debian 11.
Hosting
Dominio e configuración DNS
https://youtu.be/YbJr7YPmDsQ https://www.namecheap.com/support/knowledgebase/article.aspx/10275/2255/video-how-to-set-up-an-a-record-in-cpanel/ https://www.namecheap.com/support/knowledgebase/article.aspx/10275/2255/video-how-to-set-up-an-a-record-in-cpanel/ https://www.namecheap.com/support/knowledgebase/article.aspx/10237/2255/video-how-to-connect-a-domain-name-to-your-shared-hosting/ https://www.namecheap.com/support/knowledgebase/article.aspx/579/2237/which-record-type-option-should-i-choose-for-the-information-im-about-to-enter/
Conexión á máquina por SSH
Termius cliente SSH Introducir IP, usuario y password Aceptar que se confía
Instalación
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
apt install ufw ufw status ufw enable ufw allow 80 ufw allow 443 ufw allow http ufw allow https 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
Esto es una prueba!
Accedemos con el navegador a aclasedopeque.com o www.aclasedopeque.com y muestra el texto
Troubleshooting
ping e traceroute
systemctl
systemctl restart nginx systemctl status nginx
nginx -t
nginx -t
revisar ficheiros de configuración
cd /etc/nginx/conf.d #Aquí se podrían añadir nuevos ficheros de configuración
erros frecuentes
https://stackoverflow.com/questions/30973774/nginx-duplicate-default-server-error/30974115#30974115
Ampliación
- Configurando un proyecto Java con Spring Boot en nginx
- Configurando un proyecto PHP con Wordpress en nginx
- Configurando un proyecto Javascript con Angular en nginx