前書き
Nginxはアクティブに使用されている主要なWebサーバーの1つです。 それとその商用版であるNginx Plusは、Nginx、Incによって開発されました。
このチュートリアルでは、Ubuntu 14.04でHTTP基本認証方法を使用して、Nginxを使用したWebサイトへのアクセスを制限する方法を学習します。 HTTP基本認証は、単純なユーザー名と(ハッシュされた)パスワード認証方法です。
前提条件
このチュートリアルを完了するには、次のものが必要です。
-
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7 [この初期サーバーセットアップチュートリアルに従ってセットアップできるsudo非ルートユーザーを含む1つのCentOS 7ドロップレット]。
-
サーバーにインストールおよび構成されたNginxは、https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7 [このNginxインストールチュートリアル]に従って実行できます。
ステップ1-HTTPDツールのインストール
ターゲットWebサイトへのアクセスを制限するパスワードを設定するには、「+ htpassword 」コマンドが必要です。 このコマンドは ` httpd-tools +`パッケージの一部であるため、最初のステップはそのパッケージをインストールすることです。
sudo yum install -y httpd-tools
ステップ2-HTTP基本認証資格情報のセットアップ
この手順では、ウェブサイトを実行しているユーザーのパスワードを作成します。
そのパスワードと関連するユーザー名は、指定したファイルに保存されます。 パスワードは暗号化され、ファイルの名前は好きなものにすることができます。 ここでは、ファイル `+ / etc / nginx / .htpasswd +`とユーザー名* nginx *を使用します。
パスワードを作成するには、次のコマンドを実行します。
sudo htpasswd -c /etc/nginx/.htpasswd nginx
新しく作成されたファイルの内容を確認して、ユーザー名とハッシュ化されたパスワードを確認できます。
cat /etc/nginx/.htpasswd
例/etc/nginx/.htpasswd
nginx:$apr1$ilgq7ZEO$OarDX15gjKAxuxzv0JTrO/
ステップ3-Nginx構成の更新
HTTP基本認証資格情報を作成したので、次のステップは、ターゲットWebサイトのNginx構成を更新してそれを使用することです。
HTTP基本認証は、 `+ auth_basic `および ` auth_basic_user_file `ディレクティブによって可能になります。 ` auth_basic `の値は任意の文字列であり、認証プロンプトに表示されます。 ` auth_basic_user_file +`の値は、ステップ2で作成されたパスワードファイルへのパスです。
両方のディレクティブは、通常は「+ / etc / nginx / 」ディレクトリにあるターゲットWebサイトの設定ファイルにある必要があります。 ` nano +`またはお気に入りのテキストエディターを使用してそのファイルを開きます。
sudo nano /etc/nginx/nginx.conf
-
server *セクションの下に、両方のディレクティブを追加します。
/etc/nginx/nginx.conf
. . .
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
. . .
ファイルを保存して閉じます。
ステップ4-セットアップのテスト
変更を適用するには、まずNginxをリロードします。
sudo systemctl reload nginx
次に、お気に入りのブラウザで「+ http:/// 」に移動して、保護したばかりのWebサイトにアクセスしてみます。 認証ウィンドウ(「プライベートプロパティ」、「 auth_basic +」に設定した文字列)が表示され、正しい資格情報を入力するまでWebサイトにアクセスできません。 設定したユーザー名とパスワードを入力すると、デフォルトのNginxホームページが表示されます。
結論
Nginxウェブサイトの基本的なアクセス制限を完了しました。 この手法とアクセス制限のその他の手段に関する詳細は、https://www.nginx.com/resources/admin-guide/restricting-access/ [Nginxのドキュメント]で入手できます。