Nginx は、以下の用途で使用される無料のオープンソースWebサーバーです: ロードバランシング、バッファリング、およびキャッシュ。2004年の登場以来、NginxはWebサーバーのスケーリングやリバースプロキシとして人気を博してきました。その高いパフォーマンスと、大量の接続を処理する優れた能力により、流入するトラフィックの管理と制御に使用されています。
HTTP認証はどのように機能しますか?
In 基本HTTP認証では、サーバー上のすべてのルートがブロックされ、認証のために適切な資格情報が必要になります。ユーザーが保護されたリソースにアクセスしようとするたびに、サーバーはユーザーにWWW-Authenticateヘッダー と 401 Unauthorized レスポンスを送信します。ユーザーが使用したユーザー名とパスワードが正しく、キーファイルと一致する場合、接続が確立され、そうでない場合は拒否されます。
このチュートリアルでは、Ubuntu 20.04でNginxを使用して基本HTTP認証をセットアップする.
前提条件
このチュートリアルを進めるには、以下が必要です:
- 最新バージョンのUbuntuがインストールされていること(システム上)。
- システムユーザーがsudo権限を持っていること.
- Nginxがインストールされ、設定されていること(サーバー上)。
ステップ1:ソフトウェアリポジトリの更新
システムに新しいソフトウェアやAPIパッケージをインストールする前に、エラーやパッケージの競合を避けるためにリポジトリを更新します。まず、以下の sudo コマンドを使用してソフトウェアを更新します:
|
1 |
sudo apt-get update |
ソフトウェアリポジトリが更新されたので、必要な apache2 パッケージをインストールしましょう。
ステップ2:必要なパッケージのインストール
ディレクトリに対してHTTP認証を設定するため、暗号化されたパスワードを作成するために htpasswd コマンドを使用します。次のコマンドを使用して、apache2-utilsパッケージ をインストールします:
|
1 |
sudo apt-get install apache2-utils |
ステップ3:ユーザーとパスワードの作成
このステップでは、基本HTTP認証の資格情報を設定します。ルートディレクトリの下に、ユーザーに関連付けられた .htpasswd ファイルを作成します。パスワードは暗号化され、ファイル名は任意のもので構いません。次のコマンドを使用してファイルを作成し、暗号化されたパスワードを持つユーザーを追加します:
|
1 |
sudo htpasswd -c /etc/nginx/.htpasswd cloudsigma |

次に、以下のコマンドを使用して、新しく作成されたファイルを確認します:
|
1 |
cat /etc/nginx/.htpasswd |
ステップ4:Nginx設定の更新
HTTP基本認証の資格情報が用意できたら、Nginxを設定して対象のWebサイトで使用しましょう。HTTP基本認証を確立するには、 auth_basic および auth_basic_user_file ディレクティブが必要です。 auth_basic ディレクティブの値は文字列形式であり、 auth_basic_user_file の値は、ステップ3.
で作成したパスワードファイルへのパスです。対象のWebサイトの設定ファイルにこれら2つのディレクティブを含めることが重要です。対象のWebサイトの場所は、 /etc/nginx/sites-available ディレクトリにあります。nanoエディタを使用して設定ファイルを開きます:
|
1 |
sudo nano /etc/nginx/sites-available/default |
次に、これら両方のディレクティブを location セクションの下に追加します:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . 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 auth_basic "Private Property"; auth_basic_user_file /etc/nginx/.htpasswd; } . . . |
ディレクティブを追加した後、設定ファイルを保存して閉じます。
ステップ5:Nginxの再起動
次に、バーチャルホストへの変更を適用するために、Nginxサービスをリロードまたは再起動します。その後、基本HTTP認証を使用して保護されたドメインへのアクセスを試みます。Nginxサービスを有効にするには、次のコマンドを使用します:
|
1 |
sudo service nginx reload |
ステップ 6: セキュアなWebアクセス
Nginxを再起動したら、次のステップはお好みのブラウザでIPアドレスまたはドメイン名へのアクセスを試みることです。IPアドレス http://your_domain_name/ をブラウザでクリックすると、認証用の資格情報の入力を求めるプロンプトが表示されます。正しいユーザー名とパスワードを入力すると、デフォルトのNginxホームページが表示されます。
まとめ
このチュートリアルでは、Nginxで基本的なHTTP認証を設定する方法を学びました。基本的なユーザー名/パスワード認証は、Nginxで安全な接続を確立するための多くの認証オプションの1つにすぎません。
サーバー認証に使用される強力なオプションは他にもあります。たとえば、利用可能な一般的な方法には、API統合、JSON Web Tokens、SSHキーベースの認証などがあります。堅牢なセキュリティメカニズムの導入は最初は難しく思えるかもしれませんが、プライバシーを保護する上で非常に効果的です。
さらに、Nginxに関する他の多くの学習教材やチュートリアルには、当社のブログからアクセスできます:
- Nginxサーバーおよびロケーションブロック選択アルゴリズムの概要
- Ubuntu 20.04でNginxを使用してLaravelをインストールおよび設定する方法
- Ubuntu 20.04でPostgreSQL、Nginx、Gunicornを使用してDjangoをセットアップする方法
快適なコンピューティングを!

コメント
コメントはまだありません。最初のコメントを投稿しましょう。