Generalidades
En un servidor Apache, es posible proteger con contraseña un directorio usando archivos .htaccess y .htpasswd. Sin embargo, los archivos .htaccess no son compatibles con Nginx.
Aún puedes proteger con contraseña tus directorios, pero necesitas usar un archivo basic_auth.conf en su lugar.
En los siguientes ejemplos, username sería tu usuario Shell y example.com tu sitio web.
Creando el archivo
- Inicia sesión en tu servidor a través de SSH.
- Navega al directorio de tu usuario.
- Asegúrate de que tienes un directorio /home/username/nginx/example.com. Este no existe por defecto; debes crearlo al correr lo siguiente:
[server]$ mkdir -p nginx/example.com
- En este directorio /home/username/nginx/example.com, agrega un archivo llamado basic_auth.conf con lo siguiente:
location / { auth_basic "Restricted"; auth_basic_user_file /home/username/nginx/example.com/.htpasswd; }
- El parámetro auth_basic es solo el título del mensaje que el usuario ve cuando visita este directorio.
- El parámetro auth_basic_user_file especifica dónde está el archivo de contraseña. Observa cómo su ruta se establece en el directorio /nginx.
- En este ejemplo, la directiva location protege con contraseña el dominio entero, ya que está apuntando a /.
- Si quieres que un subdirectorio esté protegido con contraseña, cambia la directiva location de la siguiente manera:
location /subdirectory/
- Corre lo siguiente para crear el archivo .htpasswd:
[server]$ htpasswd -c /home/username/nginx/example.com/.htpasswd LOGIN
- LOGIN es el nombre de usuario que deseas utilizar para autenticar en el indicador de inicio de sesión.
- Después de escribir ese comando, ingresa una contraseña y confírmala cuando se te solicite:
New password: Re-type new password: Adding password for user LOGIN
- Recarga el archivo de configuración de Nginx.
- En tu navegador, carga el directorio al que apunta /home/username/nginx/example.com/basic_auth.conf.
En el ejemplo arriba, esto sería el directorio raíz de tu dominio ya que la directiva location apunta a /.
- Ingresa un usuario/contraseña cuando se te solicite iniciar sesión.
En este ejemplo, tu nombre de usuario es LOGIN y la contraseña es la que creó anteriormente.