WebサーバのnginxでBasic認証を行う方法です。
Basic認証はページを表示するのにユーザー名・パスワード入力を求める機能で、Webサーバーでこれを設定すると、ブラウザがユーザー・パスワード入力ボックスを表示させます。
nginxでは .htaccessファイルは使いません。設定ファイルに記述します。
htpasswdコマンドのインストール
Basic認証のユーザ名・パスワード作成にhtpasswdコマンドを使います。
OSにないときはインストールが必要です。ここでは、CentOSのインストール方法です。
ことわりがないかぎり、以降の実行ユーザはすべてスーパーユーザ(root)です。
.htpasswdファイルの作成
htpasswdコマンドでBasic認証のユーザ名とパスワードを追加します。
すると、コマンドプロンプトでパスワード入力が求められます。
パスワードを入力してEnterキーを押します。
パスワードの再入力が求められるので同じパスワードを設定します。
指定したパスワードファイルが作成されます。
内容はこんな感じです。
nginxの設定ファイルにBasic認証を適用
nginxの設定ファイルにBasic認証を適用します。
サイトごとに用意する個別ファイルを編集します。
2-6行目
Basic認証の設定です。くわしくは後述。
7-20行目
php-fpmを使うときの設定です。
locationで指定しているパスは、WordPressのユーザログイン画面、管理画面をBasic認証の対象ページに指定しています。
satisfy any
特定のホストからのアクセスだけにBasic認証を適用します。
このとき
allow | Basic認証を使わないホスト |
deny | Basic認証を使うホスト |
になります。
サンプルコードは、自サーバ以外からのアクセスはすべてBasic認証を使うようにしています。
satisfy all
すべてのホストからのアクセスにBasic認証を適用します。
allow | Basic認証を使うホスト |
deny | アクセス拒否 |
satisfyの値によってallowとdenyの意味が変わることに注意しましょう。
nginxの設定反映
Webサーバを再起動して設定内容を反映させます。
Webサーバーの再起動ができないとき、サーバーを起動したまま設定を反映させます。
どちらを使ってもかまいません。