Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

To password-protect one folder in Nginx, add auth_basic and auth_basic_user_file to the location block that serves that folder, then reload Nginx. The credentials file is a flat file generated by Apache’s htpasswd utility. Keep that file outside the public document root, make sure Nginx workers can read it, and serve the protected URL over HTTPS because Basic Authentication only base64-encodes credentials.

The example below protects /private/ while leaving other paths available. Paths, package names, service commands and configuration-file locations vary by operating system and installation method, so substitute the paths used by your installation.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How Nginx folder protection works

Nginx’s ngx_http_auth_basic_module limits access to a resource by validating a username and password through the HTTP Basic Authentication protocol. Authentication is applied where the directives are placed:

  • A location block protects one URL path, such as /private/.
  • A server block protects every location in that virtual host unless a nested location turns authentication off.
  • auth_basic sets the login realm shown by the browser.
  • auth_basic_user_file points to the file containing usernames and password hashes.

The URL path and filesystem path are related by the location’s content mapping. In the example, /private/ is served from a directory below /var/www/html; use the actual root or other content mapping in your server configuration.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.

Before you begin

Confirm the protected URL and server block

Decide the exact URL that should require a login. This article uses https://example.com/private/. Locate the server block for that hostname and identify the location that serves the folder. Authentication placed in the wrong server block or location can protect a different site or leave the intended path public.

Use an HTTPS listener

Basic Authentication sends the user ID and password in a base64-encoded HTTP header. Base64 is encoding, not encryption, so anyone able to observe an unencrypted connection could recover the credentials. Configure TLS and use the HTTPS URL for every authenticated request. The sample configuration therefore listens on port 443 with SSL enabled.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Have administrative access

Creating a password file in a system directory and editing Nginx configuration normally requires an account that can use sudo. The exact configuration directory and service name depend on how Nginx was installed.

Install the htpasswd utility

The htpasswd command creates and updates flat files used by HTTP Basic Authentication. Install the package for your distribution:

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
Operating-system family Package to install Utility provided
Debian or Ubuntu apache2-utils htpasswd
RHEL, CentOS or Oracle Linux httpd-tools htpasswd

Use your operating system’s package manager to install the listed package. Package-manager syntax and service names are not universal, so follow the conventions of the distribution and installation method in use.

Create the password file

Create the first account

Run:

sudo htpasswd -c /etc/nginx/.htpasswd alice

Enter the password when prompted. The -c option creates a new file. In this example, the file is /etc/nginx/.htpasswd and the first username is alice. Treat that path as an example: choose a location that the Nginx worker can read and that is not inside the publicly served document root.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Add another account without recreating the file

For a second user, omit -c:

sudo htpasswd /etc/nginx/.htpasswd bob

Omitting -c updates the existing file. Reusing -c when adding a user can recreate the file and remove the accounts already stored there, so use it only for the initial creation.

Understand what the file contains

The file is a line-oriented credential store containing usernames and password representations that Nginx can validate. It is not intended to be downloaded or displayed to visitors. The Nginx Basic Auth module supports crypt, Apache’s apr1, and RFC 2307 formats. Nginx warns that unsalted SHA-1 entries using {SHA} should not be used for new passwords.

Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Protect one folder with a location block

Add authentication to the location that maps to the private folder:

server {
    listen 443 ssl;
    server_name example.com;

    location /private/ {
        root /var/www/html;
        auth_basic "Private files";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

Here, auth_basic "Private files"; enables Basic Authentication and supplies the realm text shown in the login prompt. auth_basic_user_file /etc/nginx/.htpasswd; tells Nginx where to validate the submitted credentials. Replace example.com, /private/, the root directory and the password-file path with values from your installation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Only requests handled by this location require the credentials. Other locations in the same server remain governed by their own configuration. A request with valid credentials can then access resources below the protected URL path; a request without valid credentials receives an authentication challenge.

Protect an entire site, then make a nested path public

If authentication belongs on most of a virtual host, put the directives at server level:

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
server {
    auth_basic "Private site";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location /public/ {
        auth_basic off;
    }
}

Settings inherited from the server apply to nested locations. Set auth_basic off; in a public location to cancel the inherited authentication there. The password-file directive can remain at server level while the public location disables the challenge.

Choose the narrowest scope that matches the requirement. A folder-specific location reduces the chance of accidentally challenging unrelated pages, while server-level protection is useful when nearly the entire virtual host is private.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep the credential file readable but private

Place it outside the document root

Store the file outside directories that Nginx serves as web content whenever possible. A path such as /etc/nginx/.htpasswd keeps it separate from /var/www/html in the example. Do not put the file in the protected folder itself merely because that folder requires a login: a configuration mistake could otherwise expose the file as a downloadable resource.

Check Nginx worker access

Nginx worker processes open the password file for authenticated requests. The worker account must be able to read the file and traverse the directories leading to it. If workers cannot read it, every authenticated request can fail even when the username and password are correct. Verify the absolute path and filesystem permissions after moving or replacing the file.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

Do not confuse URL protection with file secrecy

Basic Auth controls requests that reach the configured location; it does not make a password file safe when that file is directly exposed by another location, an alias, a backup route or another web server. Keep the credential file out of all public content mappings and review overlapping locations if an unexpected download is possible.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Validate the configuration and reload Nginx

  1. Save the edited configuration.
  2. Run the syntax and file-reference test:
    sudo nginx -t
  3. If the test succeeds, reload Nginx without stopping the service:
    sudo systemctl reload nginx
  4. Request the protected URL in a browser or with an HTTP client. It should display a username-and-password prompt.

The service-manager command can differ by installation method. Use the reload operation provided by your environment, and never skip the configuration test: a failed test means the new configuration was not safely accepted.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Verify expected responses

Unauthenticated request

Open the protected URL in a fresh browser session or an HTTP client that has no credentials cached. Nginx should challenge for credentials. The official Nginx guidance describes incorrect credentials as producing HTTP 401 (Authorization Required).

Valid credentials

Enter a username and password that exist in the file. The request should proceed to the content served by the protected location. If it does not, check the absolute password-file path, worker read access and whether the account was added to the file without accidentally recreating it.

Public location

If you configured server-level authentication with a public exception, request the exception path separately. A location containing auth_basic off; should not prompt, while other inherited locations should continue to require credentials.

Troubleshoot common failures

Every protected request fails, including correct passwords

  • Confirm that auth_basic_user_file contains the correct absolute path.
  • Check that the Nginx worker account can read the file and traverse its parent directories.
  • Make sure the file exists on the machine and in the environment where the active Nginx workers run.
  • Run sudo nginx -t again after correcting the path or permissions, then reload Nginx.

The browser repeatedly returns 401

  • Verify the username spelling and password.
  • Confirm that the user was added to the intended file, not to a similarly named file.
  • If the file was created again with -c, recreate the required users without -c so all intended entries are present.
  • Clear cached credentials or use a fresh client session when testing a changed account.

The supposedly public path still prompts

  • Check whether authentication is inherited from a server block or a broader location.
  • Put auth_basic off; in the exact nested public location that handles the request.
  • Test the URL path actually requested, including a trailing slash where your location pattern expects one.

The password file appears downloadable

  • Move it outside the public document root.
  • Review root, alias and other location mappings for a route that exposes the file.
  • Test the file URL directly after the change and remove any public copy or backup.

The configuration test fails

Do not reload until nginx -t succeeds. Read the reported file and line, then correct syntax, quotation marks, braces or paths. Package layouts and included configuration files differ, so the error may be in an included file rather than the main file you edited.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose the right protection scope

Approach Scope Credential storage Operational complexity
Location-level Basic Auth One URL location, such as /private/ Flat htpasswd file Low; suitable for a small set of accounts
Server-level Basic Auth with exceptions Whole virtual host, with selected locations made public using auth_basic off; Flat htpasswd file Low, but requires careful inheritance checks
External identity system Determined by the identity and access-control design External identity store Higher; useful when centralized or multi-user access control is required

Regardless of scope, Basic Auth requires HTTPS/TLS for credential confidentiality. A flat file is convenient for a small deployment, while an external identity system may be more appropriate when accounts, auditing or access policies must be managed centrally.

Operational checklist

  • Install apache2-utils on Debian or Ubuntu, or httpd-tools on RHEL-family systems.
  • Create the first account with htpasswd -c; omit -c for subsequent accounts.
  • Store the file outside the public document root.
  • Use an absolute path in auth_basic_user_file.
  • Ensure Nginx workers can read the file.
  • Put auth_basic and auth_basic_user_file in the intended location or server context.
  • Use auth_basic off; to cancel inherited authentication for a public nested location.
  • Run sudo nginx -t before reloading.
  • Reload Nginx, then test unauthenticated, valid-credential and public-path requests.
  • Use HTTPS for every authenticated request.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.