Базовая авторизация (basic auth) на nginx

Для начала надо установить apache2-utils

$ sudo apt install -y apache2-utils

После этого можно создать файл с учетными данными для входа, например

$ htpasswd -c /etc/nginx/.htpasswd user

где user - логин пользователя, под которым будете входить.
После выполнения команды система спросит пароль, с ним будете входить.

Если файл уже создан, то для последующих пользователей уберите флаг -c:

$ htpasswd /etc/nginx/.htpasswd user2

Теперь внесите в конфигурацию nginx (например, /etc/nginx/sites-enabled/default) изменения, чтобы он спрашивал доступ.

Вот эти строки:

        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;

Чтобы получилось, например:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ =404;
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}
bash devops nginx