nginxでwp-login.phpにベーシック認証
.htpasswdファイルの作成
まずはパスワードファイルを配置。
任意の場所でOKです、/etc/nginx/conf.d とか。
# cd /etc/nginx/conf.d
一人目の設定
# htpasswd -nbs loginid loginpass > .htpasswd
二人目の設定
# htpasswd -nbs loginid2 loginpass2 >> .htpasswd
「loginid」と「loginpass」は使用したいIDとパスワードに変更してください。
複数IDを追加する場合、3人目以降も 「>>
」が「>>>
」のように、順番によって「>」を増やします。
「-nbs」は暗号化の種類です、下記ページがとっても親切な感じで要参照。
Nginx でBasic認証(ユーザ名、パスワードを求める )するには | レンタルサーバー・自宅サーバー設定・構築のヒント
ベーシック認証設定
WEBサイトに利用しているproxyファイルに次のコードをかまします。
.htpasswd と、expires、wp-login.php のパスは環境に合わせて記述します。
1 2 3 4 5 6 7 8 9 10 |
location /wp-login.php { auth_basic "Please enter your ID and passwordy"; auth_basic_user_file "/etc/nginx/conf.d/.htpasswd"; if ($request_filename ~ .*\.php) { break; proxy_pass http://backend; } include /etc/nginx/expires; } |
phpファイル指定なのでバックエンドに投げないと、URIアクセス時にPHPファイルをダウンロードしちゃえたりする動きとかになったりするので注意が必要です。最後にnginx設定を再読み込みして反映させてください。
# nginx -s reload