Un segmento que tiene un alto crecimiento en el mundo IT es el de desarrollo en el cual un alto porcentaje esta representado por los desarrolladores, estos a su vez manejan todo el aspecto web como uno de los pilares de su trabo y tareas , en este tipo de ambientes web una de las aplicaciones que es ideal de implementar y usar es Nginx.
Nginx (engine x), fue desarrollado como un servidor proxy HTTP, un servidor proxy de correo o un servidor proxy TCP / UDP donde todas las funciones y servicios de la gestión web son escalables según el tipo de organización y desarrollo a emplear.
- Posee un diseñado de arquitectura modular.
- Integra la función de equilibrio de carga y tolerancia a fallos con el fin de optimizar la disponibilidad
- Posee soporte acelerado de almacenamiento en caché de FastCGI, uwsgi, SCGI y servidores memcached
- Compatible con los métodos PUT, DELETE, MKCOL, COPY y MOVE
- Disponemos de un proxy inverso acelerado con almacenamiento en caché
- La geolocalización de Nginx está basada en IP
- Soporte para HTTP / 2
- Dentro de Nginx se han integrado filtros para una mejor administración como gzipping, rangos de bytes, XSLT, SSI y más.
- Puede gestionar servidores virtuales basados en nombres y basados en IP
- Compatible con los métodos de autenticación POP3: USER/PASS, APOP, AUTH
- LOGIN/PLAIN/CRAM-MD5, IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5, y SMTP: AUTH LOGIN/PLAIN/CRAM-MD5
- Soporta SSL, STARTTLS y STLS
- Puede validar referencias HTTP
- Soporta NginScript
- Acepta filtros (FreeBSD 4.1+, NetBSD 5.0+) y soporte para TCP_DEFER_ACCEPT (Linux 2.4+)
Vamos a ver como instalar Nginx en Ubuntu 20.10 y disponer de una de las mejores soluciones para gestión web.
1. Instalar Nginx en Ubuntu 20.10
El primer paso a dar será actualizar los paquetes y repositorios del sistema, para esto ejecutamos:
sudo apt Update
Luego de esto procedemos a instalar Nginx en Ubuntu 20.10 con el siguiente comando:
sudo apt install nginx
Ingresamos la letra S para confirmar la descarga e instalación de Nginx:
Después de esto vamos a iniciar el servicio de Nginx, así como ver su estado actual en Ubuntu 20.10:
sudo systemctl start nginxsudo systemctl status nginx
Como vemos su estado es “active (running)”, es decir, todo está correcto.
Para comprobar que versión de Nginx ha sido instalada ejecutamos:
sudo dpkg -l nginx
En este caso contamos con Nginx 1.17.10.
2. Configuración del firewall en Ubuntu 20.10
Al tratarse de una plataforma donde se gestionará procesos web, es necesario que autoricemos el servicio en el firewall del sistema para permitir las conexiones, existen 3 perfiles en Nginx que son:
- Nginx Full: abre los puertos 80 y 443 (para el cifrado SSL / TLS)
- Nginx HTTP: abre el puerto 80 (para tráfico web no cifrado)
- Nginx HTTPS: abre el puerto 443 (para el cifrado SSL / TLS)
En este caso ejecutaremos lo siguiente en Ubuntu 20.10:
sudo ufw enable (habilita el firewall)sudo ufw allow 'Nginx HTTP' (habilita el perfil indicado en el firewall)sudo ufw reload (recarga las ordenes)
Ahora comprobamos el estado del firewall:
sudo ufw status
Podemos ver que se ha añadido la regla solicitada.
3. Validación de Nginx en Ubuntu 20.10
Es momento de saber la dirección IP del servidor, para ello ejecutamos lo siguiente:
ifconfig
Con la dirección IP conocida, iremos a algún navegador externo o interno y ejecutamos lo siguiente:
http:// IP-equipo o dominioVeremos lo siguiente:
4. Administrar Nginx en Ubuntu 20.10
Una vez Nginx haya sido instalado correctamente, podemos realizar ciertas acciones sobre este, las primeras y más básicas son gestionar el servicio:
sudo systemctl stop nginx (detiene el servicio Nginx)sudo systemctl start nginx (inicia el servicio Nginx)sudo systemctl enable nginx (configura el servicio Nginx en el arranque de Ubuntu)sudo systemctl restart nginx (reinicia el servicio Nginx)sudo systemctl reload nginx (recarga el servicio Nginx)En caso de que deseemos alojar diversos sitios en el servidor Ubuntu 20.10, Solvetic te recomienda crear y configurar un bloque de servidor Nginx, por defecto, Nginx está configurado con el bloque de servidor donde se aloja el contenido web en el directorio /var/ www/html.
Para realizar este proceso vamos a crear el directorio:
sudo mkdir -p /var/www/solvetic.info/htmlLuego asignamos la propiedad de este:
sudo chown -R $USER:$USER /var/www/solvetic.info/html
Luego vamos a asignar permisos de directorio lo cual permite que el propietario cuente con todos los permisos (lectura, escritura y ejecución):
sudo chmod -R 755 /var/www/solvetic.info
Dentro del directorio del dominio, vamos a crear un archivo index.html, este archivo contendrá el contenido web del dominio que el desarrollador o usuario desee:
sudo nano /var/www/solvetic.info/html/index.htmlAllí dentro ingresamos el contenido a desplegar:
<html> <head> <title>Bienvenido a Solvetic!</title> </head> <body> <h1>Solvetic es el punto de encuentro de profesionales y amantes de la tecnología</h1> </body></html>
Guardamos los cambios con las teclas Ctrl + O y salimos del editor con las teclas Ctrl + X.
Con el fin de que el servidor web Nginx entregue el contenido que hemos creado, vamos a asignar un bloque de servidor con las directivas adecuadas, crearemos el nuevo bloque así:
sudo nano /etc/nginx/sites-available/solvetic.info
Allí ingresamos lo siguiente:
server { listen 80; listen [::]:80; root /var/www/solvetic.info/html; index index.html index.htm index.nginx-debian.html; server_name solvetic.info www.solvetic.info; location / { try_files $uri $uri/ =404; }}
Guardamos los cambios con Ctrl + O y salimos con Ctrl + X.
Ahora es cuestión de habilitar el archivo de bloque del servidor vinculándolo al directorio habilitado para sitios, este es que el Nginx leerá al arranque, ejecutamos:
sudo ln -s /etc/nginx/sites-available/solvetic.info /etc/nginx/sites-enabled/
Ejecutamos el siguiente comando para aplicar los cambios:
sudo systemctl restart nginxComprobamos que la configuración este correcta con la siguiente orden:
sudo nginx -t
Una vez todo este correcto, accedemos a un navegador y usamos la siguiente sintaxis:
http://IP-dominioComo resultado veremos el contenido que ha sido registrado en el archivo index.html:
- /etc/nginx/nginx.conf: hace referencia al archivo de configuración principal.
- /etc/nginx/sites-available: en este directorio se almacena la configuración de bloques del servidor, Nginx hará uso de los bloques del servidor solo si están vinculados al directorio habilitado
- /etc/nginx/sites-enabled: en este directorio se alojan los bloques de servidor Nginx por sitio
- /var/log/nginx/access.log: allí se registran todas las solicitudes que son enviadas al servidor web.
- /var/log/nginx/error.log: este es un archivo de registro de errores en el cual se almacenan todos los errores de Nginx
Vemos como Nginx es una de las soluciones mas funcionales para todo lo relacionado con el desarrollo web.