前書き

Nginxはアクティブに使用されている主要なWebサーバーの1つです。 それとその商用版であるNginx Plusは、Nginx、Incによって開発されました。

このチュートリアルでは、Ubuntu 14.04でHTTP基本認証方法を使用して、Nginxを使用したWebサイトへのアクセスを制限する方法を学習します。 HTTP基本認証は、単純なユーザー名と(ハッシュされた)パスワード認証方法です。

前提条件

このチュートリアルを完了するには、次のものが必要です。

ステップ1-Apacheツールのインストール

ターゲットWebサイトへのアクセスを制限するパスワードを設定するには、「+ htpassword 」コマンドが必要です。 このコマンドは ` apache2-utils +`パッケージの一部であるため、最初のステップはそのパッケージをインストールすることです。

sudo apt-get install apache2-utils

ステップ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 / sites-available 」ディレクトリにあるターゲットWebサイトの設定ファイルにある必要があります。 ` nano +`またはお気に入りのテキストエディターを使用してそのファイルを開きます。

sudo nano /etc/nginx/sites-available/default
  • location *セクションの下に、両方のディレクティブを追加します。

/etc/nginx/sites-available/default.conf

. . .
server_name localhost;

location / {
       # First attempt to serve request as file, then
       # as directory, then fall back to displaying a 404.
       try_files $uri $uri/ =404;
       # Uncomment to enable naxsi on this location
       # include /etc/nginx/naxsi.rules


}
. . .

ファイルを保存して閉じます。

ステップ4-セットアップのテスト

変更を適用するには、まずNginxをリロードします。

sudo service nginx reload

次に、お気に入りのブラウザで「+ http:/// 」に移動して、保護したばかりのWebサイトにアクセスしてみます。 認証ウィンドウ(「プライベートプロパティ」、「 auth_basic +」に設定した文字列)が表示され、正しい資格情報を入力するまでWebサイトにアクセスできません。 設定したユーザー名とパスワードを入力すると、デフォルトのNginxホームページが表示されます。

結論

Nginxウェブサイトの基本的なアクセス制限を完了しました。 この手法とアクセス制限のその他の手段に関する詳細は、https://www.nginx.com/resources/admin-guide/restricting-access/ [Nginxのドキュメント]で入手できます。