Si necesitamos proteger una web o un directorio de una web con nginx sólo hay que seguir estos 2 pasos:
Tabla de contenidos
Generar un fichero con el usuario y clave
Si ya tenemos un fichero de usuarios clave de apache lo podemos reutilizar en nginx, pero si lo tenemos que crear hay dos formas de hacerlo:
En el ejemplo crearemos el fichero de claves en /etc/nginx/.htpasswd
Usando el comando de apache2-utils htpasswd
sudo htpasswd -c /etc/nginx/.htpasswd usuario |
con openssl
echo -n "usuario:" >> /etc/nginx/.htpasswd openssl passwd -apr1 >> /etc/nginx/.htpasswd |
de esta forma nos quedará algo así en el fichero
test2:$apr1$o4Lmm4.x$joXl8SfzA2tYPVtRQPTtF0 |
Configurar nginx
Sólo tenemos añadir al location que queremos proteger dos líneas:
auth_basic «acceso prohibido»; para indicar que vamos a usar usuario y contraseña para ese location
auth_basic_user_file /etc/nginx/.htpasswd; para decirle donde está el fichero con el usuario y contraseña
Por ejemplo para proteger el acceso a un wordpress:
location / { auth_basic "acceso prohibido"; auth_basic_user_file /etc/nginx/.htpasswd; try_files $uri $uri/ /index.php?q=$uri&$args; } |