nginx Basic認証の使い方

  • ---

    LINEで送る
  • -

    ブックマーク
  • -

    pocket
  • -

    rss
nginx ロゴ

WebサーバのnginxでBasic認証を行う方法です。

nginxでは .htaccessファイルは使いません。設定ファイルに記述します。

htpasswdコマンドのインストール

Basic認証のユーザ名・パスワード作成にhtpasswdコマンドを使います。

OSにないときはインストールが必要です。ここでは、CentOSのインストール方法です。

ことわりがないかぎり、以降の実行ユーザはすべてスーパーユーザ(root)です。

htpasswdインストール
yum install httpd-tools

.htpasswdファイルの作成

htpasswdコマンドでBasic認証のユーザ名とパスワードを追加します。

htpasswd -c /etc/nginx/.htpasswd [username]

すると、コマンドプロンプトでパスワード入力が求められます。

New password:

パスワードを入力してEnterキーを押します。

Re-type new password:

パスワードの再入力が求められるので同じパスワードを設定します。

指定したパスワードファイルが作成されます。

内容はこんな感じです。

.htpasswdの中
username:$apr1$6wghD96e$Pn64Jp.39XjwD5YO5xj1P1

nginxの設定ファイルにBasic認証を適用

nginxの設定ファイルにBasic認証を適用します。

サイトごとに用意する個別ファイルを編集します。

/etc/nginx/conf.d/***.conf
location ~* /wp-login\.php|/wp-admin/((?!admin-ajax\.php).)*$ {
    satisfy any;
    allow 127.0.0.1;
    deny all;
    auth_basic "basic authentication";
    auth_basic_user_file "/etc/nginx/.htpasswd";
    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_buffers 256 128k;
        fastcgi_buffer_size 128k;
        fastcgi_intercept_errors on;
        fastcgi_read_timeout 120s;
    }
}

2-6行目

Basic認証の設定です。くわしくは後述。

7-20行目

php-fpmを使うときの設定です。

locationで指定しているパスは、WordPressのユーザログイン画面、管理画面をBasic認証の対象ページに指定しています。

satisfy any

特定のホストからのアクセスだけにBasic認証を適用します。

このとき

allowBasic認証を使わないホスト
denyBasic認証を使うホスト

になります。

サンプルコードは、自サーバ以外からのアクセスはすべてBasic認証を使うようにしています。

satisfy all

すべてのホストからのアクセスにBasic認証を適用します。

allowBasic認証を使うホスト
denyアクセス拒否

satisfyの値によってallowとdenyの意味が変わることに注意しましょう。

nginxの設定反映

Webサーバを再起動して設定内容を反映させます。

nginx再起動
systemctl restart nginx

Webサーバーの再起動ができないとき、サーバーを起動したまま設定を反映させます。

nginx設定反映
systemctl reload nginx

どちらを使ってもかまいません。

最近Webカテゴリでよく読まれている記事です。
blog image

ドメイン取得の意味が分からない人へ。王道の方法を紹介します。

ドメインの登録業者を選ぶのに悩む必要はないです。サイトを簡単に早く公開するには全くいらないことで、むしろ邪魔です。『お名前.com』というサービスは必ず耳にします。そのお名前.comのメリットとデメリットと一緒に、ドメインの意味が分からない人が一番失敗しないドメインの取得方法を紹介します。

tadtadya.com

_

SNSでも記事を配信しています。
コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

top
この記事を気に入ったらぜひシェアも!!