Password-protect access to an application with NGINX

NOTE: The Approach A sections referred to below do not apply to Bitnami native installers. Users of Bitnami native installers should refer only to the Approach B sections.

To configure NGINX to request a username and password when accessing your application, follow these steps:

  • At the console, type the following commands. Remember to replace APPNAME, USERNAME and PASSWORD with your application name, desired username and desired password respectively.

      $ sudo apt-get update
      $ sudo apt-get install apache2-utils
      $ sudo htpasswd -cb installdir/nginx/users USERNAME PASSWORD
  • Edit the application configuration file NGINX and add a location block as shown below:

    NOTE: Depending on your installation type, the NGINX configuration file for your application is located in the following paths:

    • Approach A (Bitnami installations using system packages): installdir/nginx/conf/server_blocks/APPNAME-server-block.conf and installdir/nginx/conf/server_blocks/APPNAME-https-server-block.conf
    • Approach B (Self-contained Bitnami installations): installdir/apps/APPNAME/conf/nginx-app.conf
      location / {
          auth_basic "Restricted Area";
          auth_basic_user_file installdir/nginx/users;

    NOTE: If you don’t wish to protect the entire application, but only a sub-URL, create a new location block as shown above only for the sub-URL you wish to protect.

  • Restart the NGINX server:

      $ sudo installdir/ restart nginx

When accessing the application, you will see an authentication popup window. Enter the username and password defined in the first step:

To change the password later, run the htpasswd utility without the -c switch:

$ sudo htpasswd installdir/users USERNAME
Last modification September 16, 2021