序文 アプリケーション シナリオ: おそらく、内部 Web サイトは外部ユーザーにアクセス可能である必要がありますが、訪問者の Web サイト アカウントの権限を付与できないため、nginx レベルで制限が課せられます。たとえば、アウトソーシング プロジェクトでは、社内の従業員はドキュメントを操作するためのアカウントを持ち、アウトソーシングされた従業員は社内のアカウントを持っていませんが、ドキュメントを閲覧できる必要があります。したがって、nginx レベルでユーザー認証を設定するのが最善かつ最も簡単なオプションです。ほとんどの場合、雇用主はアウトソーシングされた従業員に基本的なアクセス権を持つアカウントを開設しません。 nginx レベルでのユーザー認証の前提条件: apache2-utils (Debian、Ubuntu) や httpd-tools (RHEL / CentOS / Oracle Linux) などの対応するパスワード作成プログラムが必要です。オペレーティング システムによって必要なソフトウェアは異なります。 アカウントパスワードファイルを作成する
http 基本ユーザー認証用に nginx を構成する auth_basic ディレクティブを使用して、アカウントとパスワードのポップアップ ウィンドウに表示される保護領域の名前を指定します。 auth_basic_user_file ディレクティブを使用して、アカウントとパスワードの情報を含む .htpasswd パスを設定します。たとえば、次のように設定します。 場所 /api { auth_basic "管理者エリア"; auth_basic_user_file /etc/apache2/.htpasswd; } さらに、ブロックが認証システム全体を継承したくない場合は、ブロック内で auth_basic をオフに設定して、ユーザー認証をオフにすることができます。たとえば、次のように設定します。 サーバー{ ... auth_basic "管理者エリア"; auth_basic_user_file conf/htpasswd; 場所 /public/ { auth_basic オフ; } } 認証とIPアドレスによるアクセス制限を組み合わせる HTTP 基本認証は、IP アドレスによるアクセス制限と効果的に組み合わせることができます。少なくとも 2 つのシナリオを実装できます。
1. 許可および拒否の指示を使用して、指定した IP アドレスへのアクセスを許可または制限します。例: 場所 /api { #... 192.168.1.2 を拒否します。 192.168.1.1/24 を許可します。 127.0.0.1 を許可します。 すべてを否定する; } 2. 192.168.1.2 以外のネットワークでは、192.168.1.1/24 のみにアクセス権が付与されます。注意: 許可および拒否ディレクティブは定義された順序で適用されます。 ip および http 認証を介して、制限を satisfied ディレクティブと組み合わせます。ディレクティブが all に設定されている場合、クライアントが両方の条件を満たしている場合にアクセスが許可されます。ディレクティブが any に設定されている場合、クライアントが少なくとも 1 つの条件を満たしている場合にアクセスが許可されます。たとえば、次のように構成します。 場所 /api { #... すべてを満たす; 192.168.1.2 を拒否します。 192.168.1.1/24 を許可します。 127.0.0.1 を許可します。 すべてを否定する; auth_basic "管理者エリア"; auth_basic_user_file conf/htpasswd; } 上記は完全な例にまとめることができます。 http { サーバー{ 192.168.1.23:8080 をリッスンします。 ルート /usr/share/nginx/html; 場所 /api { API; すべてを満足させる; 192.168.1.2 を拒否します。 192.168.1.1/24 を許可します。 127.0.0.1 を許可します。 すべてを否定する; auth_basic "管理者エリア"; auth_basic_user_file /etc/apache2/.htpasswd; } } } 最終的な効果は以下のようになります。 © オリジナル記事、公式文書より引用 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: Windows 10 での MySQL 8.0.11 圧縮バージョンのインストール チュートリアル
>>: Node.js を使用して C# のデータ テーブル エンティティ クラス生成ツールを作成する方法
目次1. Springbootプロジェクトを準備する2. 関連する設定を実行する3.パッケージ4.D...
これは、よく使われるけれども忘れられがちな CSS 実装方法のコレクションです。抜けや追加があれば、...
雇用主から MySQL クエリ条件でインデックスが使用されるかどうかを尋ねられた場合、どのように答え...
日常的なウェブサイトの保守と管理では、多くの SQL ステートメントが使用されます。熟練して使用する...
他の人のために解決した問題を記録します。問題の説明MySQLのバージョンは5.7、オペレーティングシ...
プロジェクトがある程度複雑になると、必然的にロジックの再利用の問題に直面することになります。 Rea...
目次序文1. オフィス文書の種類のプレビュー2. PDF形式のプレビュー3. 画像の種類4. ビデオ...
PHP7 がリリースされてからかなり時間が経ちますが、パフォーマンスが大幅に向上したことはよく知られ...
目次小さいけれど美しいシンプルにNULL値を避けるデータタイプを選択する手順データ型の紹介1. 文字...
Vite とは何ですか? (フロントエンドの新しいおもちゃです) Vite は、ネイティブ ES モ...
MySQL5.6 SSLファイルの作成方法公式ドキュメント: https://dev.mysql.c...
「壮大」という言葉は、おそらく現代のデザイナーが最も聞きたくない言葉でしょう。デザイナー:「デザイン...
目次双方向データバインディングとは双方向データバインディングの実装データ影響ビュービューはデータに影...
丁寧に掃除を始めましょう!未使用ボリュームの一覧docker ボリューム ls -qf dangli...
目次1. ストアド関数を作成する2. ストアド関数の呼び出し3. 保存された関数を削除する4. スト...