martes, 8 de octubre de 2013

¿Cómo configurar Nginx para que utilice autenticación HTTP?

Estaba haciendo una migración de servidores y decidí cambiar Apache por Nginx, todo resultó bastante "sencillo", pero ¡oh sorpresa! uno de los sitios web necesita autenticación HTTP para funcionar como se espera.

Y bueno, caí en cuenta de que no tenía idea de como hacerlo por lo que luego de una pequeña búsqueda en google investigación pues encontré estos pasos:

1. Para poder generar el password cifrado utilicé Apache Utils por lo que ejecuté:
sudo apt-get install apache2-utils

2. Crear el usuario y el password
sudo htpasswd -c /path/donde/mantener/el/archivo/.htpasswd el_nombre_de_usuario

Pedirá el password:
New password:
Re-type new password:
Adding password for user el_nombre_de_usuario

3. Actualizar el archivo de configuración de Nginx
sudo vi /etc/nginx/sites/available/el_archivo_de_configuracion_del_sitio_web

En este archivo, en la sección location se debe agregar lo siguiente:

auth_basic "Restricted";
auth_basic_user_file /path/donde/mantener/el/archivo/.htpasswd;

Ejemplo:

server {
  listen      numero_de_puerto;
  server_name el_dominio.com;
  location / {
    root                 /el/path/a/la/raiz/del/sitio;
    auth_basic           "Restricted";
    auth_basic_user_file /el/path/al/archivo/.htpasswd;
}

4. Luego simplemente recargamos Nginx y listo:

sudo /etc/init.d/nginx

No hay comentarios.:

Publicar un comentario