Nginx es un servidor web gratuito y de código abierto utilizado para el equilibrio de carga, almacenamiento en búfer y almacenamiento en caché. Desde su creación en 2004, Nginx ha ganado popularidad para escalar servidores web y proxy inverso. Debido a su alto rendimiento y excelentes capacidades para manejar un gran volumen de conexiones, se utiliza para gestionar y controlar el tráfico entrante.
¿Cómo funciona la autenticación HTTP?
En la autenticación HTTP básica, todas las rutas del servidor están bloqueadas y requieren las credenciales adecuadas para autenticarse. Cada vez que un usuario intenta acceder a un recurso protegido, el servidor le envía un encabezado WWW-Authenticate y una respuesta 401 Unauthorized. Si el nombre de usuario y la contraseña utilizados por el usuario son correctos y coinciden con el archivo de claves, la conexión se establece; de lo contrario, se deniega.
In este tutorial, le guiaremos a través de los pasos para configurar la autenticación HTTP básica con Nginx en Ubuntu 20.04.
Requisitos previos
Para seguir este tutorial, necesitará lo siguiente:
- La última versión de Ubuntu instalado en su sistema.
- Los usuarios del sistema deben tener privilegios de sudo.
- Nginx instalado y configurado en su servidor.
Paso 1: Actualizar los repositorios de software
Antes de instalar cualquier software nuevo o un paquete de API en su sistema, actualice los repositorios para evitar errores o conflictos de paquetes. Inicialmente, actualizaremos el software utilizando el comando sudo :
|
1 |
sudo apt-get update |
Ahora que hemos actualizado los repositorios de software, instalemos los paquetes apache2 necesarios.
Paso 2: Instalar los paquetes necesarios
Como estamos configurando la autenticación HTTP para un directorio, utilizaremos el comando htpasswd para crear una contraseña cifrada. Instale el paquete apache2-utils utilizando el siguiente comando:
|
1 |
sudo apt-get install apache2-utils |
Paso 3: Crear usuario y contraseña
En este paso, configuraremos las credenciales básicas de autenticación HTTP. En el directorio raíz, cree un archivo .htpasswd asociado con el usuario. La contraseña estará cifrada y el nombre del archivo puede ser el que elija. Utilice el siguiente comando para crear el archivo y agregar al usuario con una contraseña cifrada:
|
1 |
sudo htpasswd -c /etc/nginx/.htpasswd cloudsigma |

A continuación, verifique el archivo recién creado utilizando el siguiente comando:
|
1 |
cat /etc/nginx/.htpasswd |
Paso 4: Actualizar la configuración de Nginx
Once we have our HTTP basic authentication credentials, let’s set up Nginx and use it on our target website. We require auth_basic y auth_basic_user_file para establecer la autenticación básica HTTP. El valor de la directiva auth_basic está en formato de cadena, mientras que el valor de auth_basic_user_file es la ruta al archivo de contraseñas creado en el Paso 3.
Es importante incluir las dos directivas en el archivo de configuración del sitio web de destino. Encontrará la ubicación del sitio web de destino en el directorio /etc/nginx/sites-available. Abra el archivo de configuración utilizando el editor nano:
|
1 |
sudo nano /etc/nginx/sites-available/default |
Luego, agregue ambas directivas bajo la sección location :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . server_name localhost; location / { # Primer intento de servir la solicitud como archivo, luego # como directorio, luego volver a mostrar un 404. try_files $uri $uri/ =404; # Descomentar para habilitar naxsi en esta ubicación # include /etc/nginx/naxsi.rules auth_basic "Propiedad Privada"; auth_basic_user_file /etc/nginx/.htpasswd; } . . . |
Después de agregar la directiva, guarde y cierre el archivo de configuración.
Paso 5: Reiniciar Nginx
A continuación, recargue o reinicie los servicios de Nginx para aplicar los cambios en nuestro host virtual. Después de eso, intentaremos acceder al dominio protegido utilizando nuestra autenticación HTTP básica. Utilice el siguiente comando para activar los servicios de Nginx:
|
1 |
sudo service nginx reload |
Paso 6: Acceso web seguro
Una vez que haya reiniciado Nginx, el siguiente paso es intentar acceder a la dirección IP o al nombre de dominio en su navegador favorito. Al hacer clic en la dirección IP http://your_domain_name/ en su navegador, se abrirá una ventana emergente solicitándole que introduzca las credenciales para autenticarse. Una vez que introduzca el nombre de usuario y la contraseña correctos, verá la página de inicio predeterminada de Nginx.
Conclusión
En este tutorial, aprendimos cómo configurar la autenticación HTTP básica con Nginx. La autenticación básica de usuario/contraseña es solo una de las muchas opciones de autenticación para establecer una conexión segura en Nginx.
Existen otras opciones potentes utilizadas para la autenticación de servidores. Por ejemplo, algunos métodos populares que puede utilizar incluyen integraciones de API, JSON Web Tokens, autenticaciones basadas en claves SSH. Aunque obtener mecanismos de seguridad robustos puede parecer complicado al principio, son muy eficaces para proteger su privacidad.
Además, hay muchos otros materiales de aprendizaje y tutoriales sobre Nginx a los que puede acceder desde nuestros blogs:
- Descripción general de los algoritmos de selección de bloques de servidor y ubicación de Nginx
- Instalación y configuración de Laravel con Nginx en Ubuntu 20.04
- Configuración de Django con PostgreSQL, Nginx y Gunicorn en Ubuntu 20.04
¡Feliz computación!

Comentarios
Aún no hay comentarios. Sea el primero.