Nginx

需要對 nginx 中的特定 IP 進行基本身份驗證

  • March 23, 2019

我有一個 nginx 的 IP 白名單,但除此之外,我還想要求對特定 IP 進行基本身份驗證。

例如,允許訪問這些 IP:

198.51.100.1
198.51.100.2

需要對此 IP 進行基本身份驗證:

198.51.100.3

並為任何人否認。

這怎麼可能?satisfy指令似乎沒有解決這個問題

您可以使用 GEO 指令來實現這一點:http: //nginx.org/en/docs/http/ngx_http_geo_module.html#geo

只是使用您的 IP 地址範例的草圖:

geo $authentication {
default "Authentication required";
198.51.100.1 "off";
198.51.100.2 "off";
198.51.100.3 "on";
...
}

server {
...
location / {
satisfy any;



   # basic auth referencing to geo with $authentication
   auth_basic $authentication;
   auth_basic_user_file /etc/nginx/.htpasswd;

   # whitelist for the inital ip address restrictions
   include /etc/nginx/conf.d/ip-whitelist.conf.include;
   deny all;
}}

引用自:https://serverfault.com/questions/959612