序文
アプリケーション シナリオ: おそらく内部 Web サイトには外部ユーザーがアクセスする必要があり、同時に訪問者には Web サイト アカウントの権限を与えることができないため、次のような制限が課されます。 nginxのレベル。たとえば、アウトソーシングプロジェクトでは、社内の従業員はドキュメントを操作するためのアカウントを持っていますが、外注先の従業員は社内のアカウントを持っていませんが、ドキュメントを参照できる必要があるため、nginx レベルでユーザー認証を設定することが最も簡単で最良のオプションです。ほとんどの場合、雇用主は外注先の従業員に対して基本的なアクセス権を持つアカウントを開設しません。
nginx レベルでのユーザー認証の前提条件: apache2-utils (debian、ubuntu) や httpd-tools (rhel/centos/oracle linux) など、対応するパスワード作成プログラムが必要です。オペレーティング システムは異なります。異なるソフトウェア。
アカウント パスワード ファイルの作成
コマンド sudo htpasswd -c /etc/apache2/.htpasswd user1 ## を使用します。 #最初のアカウントを作成し、Enter キーを押してパスワードを入力します。同じコマンドには、2 番目のユーザーとパスワードを作成するための -c パラメータはありません。-c パラメータはファイルを作成するためのものです。繰り返す必要はありません。 2回目以降のコマンドでファイルを作成します。
user1 :$apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0 など。
http 基本ユーザー認証用に nginx を構成する
location /api { auth_basic "administrator's area"; auth_basic_user_file /etc/apache2/.htpasswd; }さらに、ブロックが認証システム全体を継承したくない場合は、ブロック内で auth_basic をオフに設定できます。つまり、ユーザー認証がオフになります。設定例:
server { ... auth_basic "administrator's area"; auth_basic_user_file conf/htpasswd; location /public/ { auth_basic off; } }
認証と IP アドレスによるアクセス制限の組み合わせ
IP および http 認証を介して制限を満足ディレクティブと組み合わせます。ディレクティブが all に設定されている場合、クライアントがこれら 2 つの条件を満たしたときにアクセスが許可されます。ディレクティブが any に設定されている場合、クライアントが少なくとも 1 つの条件 (例: 構成) を満たしていればアクセスが許可されます。
location /api { #... deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; }上記は完全な例にまとめることができます:
location /api { #... satisfy all; deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; auth_basic "administrator's area"; auth_basic_user_file conf/htpasswd; }
以上がNginxユーザー認証ページの設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。