nginxで認証必須にする
nginxでBASIC認証を通過していなければ何も出来ないようにする方法。
# /etc/nginx/conf.d/default.conf server { listen 443 default ssl; server_name hoge.com; # SSL証明書 ssl_certificate /etc/nginx/conf.d/ssl/server.crt; ssl_certificate_key /etc/nginx/conf.d/ssl/server.key; # BASIC認証 auth_basic Restricted; auth_basic_user_file /etc/nginx/userpass; # 認証が通っていれば /=/... に内部リダイレクト location / { if ( $remote_user != "" ) { rewrite /(.*) /=/$1 last; break; } } # 認証必須領域 location /=/ { # 以下は内部リダイレクト専用領域 # 外部からアクセスすると 404 を返す internal; location /=/app/ { ... 中略 ... } } ... 中略 ... }
nginx-1.9.5で確認。以前はif($remote_user=""){break;}をlocationごとに書いてたけど、これでいけるっぽい。