Password protecting a folder/resource with Nginx

Tagged perl, ruby, nginx, auth_basic, htpasswd  Languages bash

First add the following to your Nginx configuration file:

location / {
  auth_basic            "Restricted";
  auth_basic_user_file  /etc/nginx/htpasswd;

Then create the htpasswd file:

# this be passwords

To generate a htpasswd password without installing Apache you can use the following Perl or Ruby code:


perl -le 'print crypt("password", "salt")'

Ruby (run in irb)


The crypt() method uses 56-bit DES encryption, which is used in /etc/passwd and htpasswd.