Nginx
需要對 nginx 中的特定 IP 進行基本身份驗證
我有一個 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; }}