Instalar Nginx Ubuntu
Nginx es uno de los servidores web mas usados. Podemos usarlo como servidor web o como proxy inverso.
Instalación
sudo apt update sudo apt install nginx
Configurar el Firewall
Necesitamos configurar el firewall de ubuntu para poder tener acceso al servicio web
Listar las aplicaciones ufw
sudo ufw app list
Devuelve algo asi:
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
- Nginx Full: Este perfil abre tanto el puerto 80 (tráfico web normal, no cifrado) como el puerto 443 (tráfico TLS/SSL cifrado)
- Nginx HTTP: Este perfil solamente abre el puerto 80 (tráfico web normal, no cifrado)
- Nginx HTTPS: Este perfil solamente abre el puerto 443 (tráfico TLS/SSL cifrado)
yo suelo habilitar el 80 y 443
sudo ufw allow ´Nginx Full´
Si da error habilitar de uno en uno:
ufw allow 'Nginx HTTPS' ufw allow 'Nginx HTTP
' Para verificar si se han realizado los cambios
sudo ufw status
To Action From -- ------ ---- Nginx HTTP ALLOW Anywhere Nginx HTTPS ALLOW Anywhere OpenSSH ALLOW Anywhere Nginx Full ALLOW Anywhere Nginx HTTP (v6) ALLOW Anywhere (v6) Nginx HTTPS (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6) Nginx Full (v6) ALLOW Anywhere (v6)
Verificación
Para comprobar que el servicio esta en ejecución.
/etc/init.d/nginx status
nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running)data-slider since Wed 2021-09-29 13:50:11 UTC; 2h 25min ago
Bloques del servidor
Los bloques de servidor son parecido al virtualhost de Apache, nos permite alojar mas de un dominio en un solo servidor.
La configuración de los dominios disponibles están en:
/etc/nginx/sites-available
y de los activos en /etc/nginx/sites-enabled
Se puede hacer una copia del archivo default
y modificar los campos necesarios para nuestro dominio.
Yo prefiero poner los datos minimos y necesarios para el servidor en este caso es del dominio pruebas.enunpimpam.com, que apuntara a un simple archivo index.html dentro de la carpeta /var/www/prueba.enunpimpam.com
creamos el archivo dentro de site-available
nano prueba.enunpimpam.com
server { listen 80; listen [::]:80; root /var/www/prueba.enunpimpam.com; index index.html index.htm index.nginx-debian.html; server_name prueba.enunpimpam.co www.prueba.enunpimpam.co; location / { try_files $uri $uri/ =404; } }
Ahora necesitamos habilitar la configuración creando un enlace de este archivo al directorio site-enabled.
sudo ln -s /etc/nginx/sites-available/prueba.enunpimpam.com /etc/nginx/sites-enabled/
Por ultimo seria conveniente hash bucket, para evitar problemas.
sudo nano /etc/nginx/nginx.conf
server_names_hash_bucket_size 64;
reiniciamos el servidor Nginx
/etc/init.d/nginx restart