Configurar NGINX en un VPS
Contexto
No soy profesor, estas son mis propias notas, las de un estudiante insignificante, Aaron (Iso) Pescasio.
Para practicar con Linux, creé este script para simplificar la configuración de un servidor NGINX en un VPS con el fin de alojar un sitio web.
Step-by-step Script Breakdown
Instalar NGINX
Instalar el servidor web nginx, esencial para alojar un sitio web estático (~10 segundos).
Definir Nombre de Dominio
Elegir el nombre de dominio que se utilizará para la configuración del sitio web (~1 segundo).
Establecer Permisos del Directorio Web
Otorgar permisos al usuario actual para gestionar el contenido del sitio web (~1 segundo).
Crear Estructura de Directorio del Sitio Web
Crear la estructura /var/www/nombredominio/public para alojar los archivos del sitio web (~2 segundos).
Agregar una Página de Prueba
Agregar un archivo de prueba index.html para verificar que el sitio esté funcionando (~1 segundo).
Eliminar Configuraciones Predeterminadas
Eliminar los archivos de configuración predeterminados de NGINX para evitar conflictos (~2 segundos).
Crear una Configuración Personalizada de NGINX
Escribir un bloque de servidor personalizado para el nombre de dominio que apunte al directorio correcto (~3 segundos).
Habilitar la Configuración
Crear un enlace simbólico en sites-enabled, luego probar y recargar NGINX (~3 segundos).
Instalar Certbot
Instalar certbot con soporte para NGINX para generar un certificado SSL (~10 segundos).
Generar Certificado SSL
Ejecutar certbot para generar y aplicar automáticamente un certificado HTTPS de Let's Encrypt (~30 segundos).
Probar Renovación
Mostrar un mensaje informativo y ejecutar una prueba para la renovación automática del certificado (~5 segundos).
Bash Script
### © Aaron (Iso) Pescasio / www.apescasio.fr ###
### Script para alojar un sitio web usando NGINX y asegurarlo con HTTPS mediante Certbot ###
### Instalar servidor web NGINX ###
sudo apt install nginx -y
### Establecer el nombre de dominio a usar para el sitio ###
domain_name='apescasio.fr'
### Asignar propiedad de /var/www al usuario actual ###
sudo chown $USER:$USER /var/www -R
### Navegar al directorio base para contenido web ###
cd /var/www
### Crear los directorios del sitio: raíz + carpeta pública ###
mkdir $domain_name && mkdir $domain_name/public
### Navegar al directorio público del sitio ###
cd $domain_name/public
### Crear un archivo índice de prueba para verificar que el sitio esté en línea ###
echo 'Prueba' >> index.html
### Eliminar archivos de configuración predeterminados de NGINX ###
sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default
### Crear un nuevo archivo de configuración de NGINX para el sitio ###
sudo sh -c "echo 'server {
listen 80;
server_name $domain_name www.$domain_name;
root /var/www/$domain_name/public;
index index.html;
location / {
try_files \$uri \$uri/ =404;
error_page 404 /404/index.html;
}
}' > /etc/nginx/sites-available/$domain_name.conf"
### Habilitar la configuración del sitio NGINX mediante un enlace simbólico ###
sudo ln -s /etc/nginx/sites-available/$domain_name.conf /etc/nginx/sites-enabled/
### Probar la configuración de NGINX y recargar si es válida ###
sudo nginx -t && sudo systemctl reload nginx
### Instalar Certbot para obtener un certificado SSL mediante NGINX ###
sudo apt-get install python3-certbot-nginx -y
### Generar certificado SSL de Let's Encrypt y configurar automáticamente NGINX ###
sudo certbot --nginx -d $domain_name -d www.$domain_name
### Mensaje informativo sobre la validez del certificado SSL ###
echo "El certificado SSL de Let's Encrypt solo es válido por 90 días. Probando el proceso de renovación del certificado SSL."
### Probar el proceso de renovación automática del certificado ###
sudo certbot renew --dry-runÚltima actualización: