EngineX(nginx)で特定のIPアドレスからのアクセスはベーシック認証を回避し、それ以外のアクセスにはベーシック認証をかける設定は、nginxの「satisfy any;」ディレクティブを使って実現できます。
具体的には、以下のような設定例です:
server {
listen 80;
server_name example.com;
location / {
satisfy any;
# 許可するIPを指定(認証回避)
allow 192.168.1.100;
allow 127.0.0.1;
# 他のIPは拒否
deny all;
# ベーシック認証設定
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
この設定により、許可したIPアドレスからのアクセスはベーシック認証なしで通過でき、それ以外のIPからのアクセスにはベーシック認証が求められます。また、satisfy any;により「IP許可または認証成功」のどちらかでアクセスを許可します。