Password-protect access to an application with NGINX

Before running the commands shown on this page, you should load the Bitnami stack environment by executing the installdir/use_APPNAME script (Linux and MacOS) or by clicking the shortcut in the Start Menu under “Start -> Bitnami APPNAME Stack -> Application console” (Windows). On OS X VMs, the installation directory is /opt/bitnami and OS X VM users can click the “Open Terminal” button to run commands. Learn more about the Bitnami stack environment and about OS X VMs.

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
    $ cd installdir/APPNAME/conf/
    $ sudo htpasswd -cb users USERNAME PASSWORD
  • Edit the installdir/apps/APPNAME/conf/nginx-app.conf file and update the default location block as shown below:

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_read_timeout 300;
        fastcgi_pass unix:installdir/php/var/run/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        include fastcgi_params;
        auth_basic "Restricted Area";
        auth_basic_user_file installdir/APPNAME/conf/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 April 8, 2020