TL;DR
mc -e /etc/nginx/nginx.conf
location / {
auth_basic "Restricted";
auth_basic_user_file /home/domain//public_html/.htpasswd;
}
htpasswd -c /home/domain/public_html/.htpasswd username
Now restart NGINX:
# service nginx restart
The / location is pretty important, and if you’re doing other stuff in there, e.g. with WordPress or Laravel friendly URL rewriting, then you have to combine like this:
location / {
auth_basic "Restricted";
auth_basic_user_file /home/domain_user/public_html/.htpasswd;
try_files $uri $uri/ /index.php?$query_string;
}
Reference:
https://help.dreamhost.com/hc/en-us/articles/215837528-Password-protecting-directories-with-Nginx