Nginx は、高性能で信頼性の高い Web サーバーおよびリバース プロキシ サーバーです。 Nginx は、強力な負荷分散およびキャッシュ機能に加えて、HTTP 基本認証もサポートしています。 HTTP 基本認証は、リクエスト ヘッダーにユーザー名とパスワードを追加することでユーザーの身元を確認する単純な認証方法です。この記事では、Nginx を使用して HTTP 基本認証を実装する方法を学びます。
1. ユーザー名とパスワードの設定
まず、パスワード ファイルを作成する必要があります。 htpasswd コマンドを使用してこのファイルを作成できます。 htpasswd は、HTTP 基本認証パスワードを管理するためのコマンド ライン ツールです。
ターミナルで次のコマンドを使用してパスワード ファイルを作成できます:
htpasswd -c /etc/nginx/.htpasswd username
このうち -c は新しいパスワード ファイルを作成することを意味します。/etc/nginx/.htpasswd はパスワード ファイルへのパス、 username は追加するユーザー名です。このコマンドを実行すると、パスワードの入力を求められます。パスワードを入力すると、htpasswd はパスワードをハッシュし、パスワード ファイルに保存します。
パスワード ファイルにさらにユーザーを追加する場合は、次のコマンドを使用します。
htpasswd /etc/nginx/.htpasswd username2
パスワード ファイルがすでに存在するため、このコマンドには -c オプションがありません。コマンドを入力すると、パスワードの入力を求められます。入力すると、htpasswd はユーザー名とパスワードをハッシュしてパスワード ファイルに追加します。
2. Nginx に基本認証を適用する
これで、ユーザー名とパスワードのハッシュを含むパスワード ファイルが作成されました。次に、Nginx で HTTP 基本認証を適用する必要があります。
次のディレクティブをサーバー ブロックまたはロケーション ブロックに追加する必要があります:
auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd;
最初のディレクティブは、リクエストに対して基本認証を実行し、ポップアップに「制限付き」を表示するように Nginx に指示します。説明としてログイン ボックス。
2 番目のディレクティブは、/usr/share/nginx/.htpasswd ファイルを使用してユーザーを認証するように Nginx に指示します。
たとえば、次のコードを Nginx のデフォルトのサーバー ブロックに追加できます:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; }
これで、Nginx サーバーに基本認証が正常に追加されました。
3. HTTP 基本認証のテスト
次に、設定した認証関数をテストしましょう。テストには、curl や Firefox、その他のツールを使用できます。
curl を使用したテスト:
curl -I http://localhost
コマンド ラインでは、ユーザー名とパスワードの入力を求められます。正しいユーザー名とパスワードを入力すると、HTTP 応答ヘッダーに次のコードが含まれていることがわかります。
HTTP/1.1 200 OK Server: nginx/1.14.0 (Ubuntu) ...
Firefox でのテスト:
Firefox にサーバー アドレス http://localhost を入力します。 Firefox は「制限付き」という単語と説明を含むウィンドウをポップアップ表示し、ユーザー名とパスワードの入力を求めます。正しいユーザー名とパスワードを入力すると、サーバーのデフォルト Web ページにリダイレクトされます。
概要
この記事では、Nginx を使用して HTTP 基本認証を実装する方法を紹介します。 HTTP 基本認証は、Web サーバーの機密リソースを保護するために使用できる、シンプルだが効果的な認証方法です。最初に htpasswd コマンドを使用してパスワード ファイルを作成し、次に Nginx 構成で Basic Authentication ディレクティブを適用することで、HTTP Basic 認証を Nginx サーバーに簡単に追加できます。
以上がNginx を使用して HTTP 基本認証を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。