Авторизация в nginx без пароля, только по логину

Случилось так что с нескольких серверов необходимо обращаться к серверу nginx. Например сервера - host1,host2,host3 Каждый сервер при обращение через курл подставлял бы свое имя -u host1: и при этом проходила бы авторизация, если такое имя есть в файле с пользователями. Но на данный момент если не заполнить пароль, то появляется ошибка:

crypt_r() failed (22: Invalid argument)

Искал в гугле что либо похожее, но везде одно и тоже пишут, как настоить логин-пароль связку. Может быть кто-то сталкивался или сможет помочь?
Устроит вариант если будет один пароль для всех пользователей, но именно логины нужно брать из файла.


Ответы (2 шт):

Автор решения: Aleksey Vaganov

Испольуйте базовую HTTP авторизацию на уровне вашего Nginx. В запросе через Curl будете передавать заголовок Authorization.

curl -H "Authorization: ....." url
→ Ссылка
Автор решения: eri
$ curl -u test1: http://192.168.0.1:2480/
<html><body><h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
</body></html>
$ curl -u test2: http://192.168.0.1:2480/
<html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.10.3</center>
</body>
</html>

Конфиг Nginx:

server {
        listen 2480;
        listen [::]:2480;

        server_name _;

        location / {
                proxy_pass       http://1c83:80;
                proxy_set_header Host      $host:$server_port;
                proxy_set_header X-Real-IP $remote_addr;
                resolver 127.0.0.1;
                auth_basic "Unauthorized";
                auth_basic_user_file /var/www/passto/.htpasswd;
        }
}

Файл с паролем:

exampleuser:{PLAIN}examplepassword
test1:{PLAIN}
→ Ссылка