Tente isto:
location / {
satisfy any;
allow 82.242.75.92;
allow 82.242.75.98;
deny all;
auth_basic "Restricted";
auth_basic_user_file /home/password_manager/passwords;
}
Atualmente, tenho um aplicativo que eu quero que seja acessível para todos que vêm de dois endereços IP específicos e que protejam o mesmo aplicativo por meio do mesmo URL do usuário proveniente de outro IP.
Por exemplo, eu permito que o usuário tenha 190.190.190.110
e 190.190.190.112
. E para outras pessoas eu quero que o Nginx se refira a um arquivo htpassword.
Alguém sabe como fazer isso?
Editar: Quick Up
Tente isto:
location / {
satisfy any;
allow 82.242.75.92;
allow 82.242.75.98;
deny all;
auth_basic "Restricted";
auth_basic_user_file /home/password_manager/passwords;
}
Isso não foi testado ... mas algo assim pode funcionar no seu bloco de servidores
server {
if ($remote_addr !~* "190.190.190.[110|112]") {
auth_basic "Restricted";
auth_basic_user_file /path/to/htpasswd.file;
}
}
minha expressão regular pode estar errada, mas essa é a essência de como fazer isso.
Eu não acho que você pode restringir a autenticação básica baseada em IP diretamente, mas você pode forçar um redirecionamento para um site separado (isto é, novo bloco de servidor) que faz.
Verifique isso:
Use o Nginx para o servidor de páginas diferentes, dependendo no endereço IP / sub-rede
(Eu preciso executar e implementar isso sozinho ...)
Tags nginx