ホームページ >バックエンド開発 >PHPチュートリアル >分散 Web サービスのアクセス制御を実装するために Nginx プロキシ サーバーを構成するにはどうすればよいですか?

分散 Web サービスのアクセス制御を実装するために Nginx プロキシ サーバーを構成するにはどうすればよいですか?

王林
王林オリジナル
2023-09-05 15:30:481369ブラウズ

分散 Web サービスのアクセス制御を実装するために Nginx プロキシ サーバーを構成するにはどうすればよいですか?

分散 Web サービスのアクセス制御を実現するために Nginx プロキシ サーバーを構成するにはどうすればよいですか?

はじめに:
最新の分散 Web サービス アーキテクチャでは、システムのセキュリティと信頼性を確保するために、アクセス制御は非常に重要な部分です。高性能でスケーラブルなプロキシ サーバーとして、Nginx を使用して分散 Web サービスのアクセス制御を実装し、柔軟な構成オプションを提供できます。この記事では、分散 Web サービスのアクセス制御を実装するために Nginx プロキシ サーバーを構成する方法を紹介し、関連するコード例を示します。

1. Nginx サーバーのインストール

まず、Nginx サーバーをインストールする必要があります。 Linux システムでは、パッケージ管理ツールを通じてインストールできます。 Ubuntu システムを例として、次のコマンドを使用してインストールします:

sudo apt-get update
sudo apt-get install nginx

2. Nginx プロキシ サーバーを構成します

  1. Nginx 構成ファイルを編集します
    Nginx 構成を開きます
  2. ##
    sudo nano /etc/nginx/nginx.conf
    プロキシ サービスを構成する
  1. Nginx 構成ファイルで、
    http セクションを見つけて、その中に次のコードを追加します。 ##
    http {
        ...
        upstream backend {
            server web1.example.com:80;
            server web2.example.com:80;
            server web3.example.com:80;
        }
        ...
    }
  2. 上記のコードの
upstream backend

はバックエンド サーバーのアドレスとポート番号を定義しており、実際の状況に応じてバックエンド サーバーを追加または削除できます。

アクセス制御の構成
    特定のニーズに応じて、さまざまなアクセス制御ポリシーを構成できます。一般的な設定例を次に示します。

  1. (1) IP ホワイトリスト:
location / {
    allow 192.168.0.0/24;
    deny all;
}

上記の設定は、IP アドレス

192.168.0.0/24

のみを示します。クライアントアクセスが許可されています。 (2) HTTP 基本認証に基づく:

location / {
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

上記の構成は、HTTP 基本認証を使用する必要があり、ユーザーが

.htpasswd

ファイルを通じて認証されることを示しています。 。 (3) URL パスに基づく:

location /admin {
    deny all;
}

location /api {
    allow all;
}

上記の設定は、

/admin

パスに対するリクエストは拒否され、/ パスに対するリクエストは拒否されることを示しています。 api パスは拒否されますが、許可されます。

Nginx サーバーを再起動する
    構成が完了したら、次のコマンドを使用して Nginx サーバーを再起動し、構成を有効にします:

  1. sudo service nginx restart
  2. 3. デモンストレーションの例

3 つのバックエンド サーバーがあるとします:

web1.example.com

web2.example.comweb3.example.comアクセス制御を構成する方法を説明します。

設定ファイルの例:
  1. http {
        ...
        upstream backend {
            server web1.example.com:80;
            server web2.example.com:80;
            server web3.example.com:80;
        }
    
        server {
            listen 80;
            
            location / {
                allow 192.168.0.0/24;
                deny all;
                proxy_pass http://backend;
            }
    
            location /admin {
                deny all;
                proxy_pass http://backend;
            }
            
            location /api {
                allow all;
                proxy_pass http://backend;
            }
        }
        ...
    }
Nginx サーバーを再起動します:
  1. sudo service nginx restart
  2. 上記の設定により、次の機能:

1) IP アドレス

192.168.0.0/24

を持つクライアントのみが、ルート パス / にアクセスできます。 2) /admin
パスへのリクエストへのアクセスを拒否します。 3) /api
パスへのリクエストへのアクセスを許可します。 結論:

Nginx プロキシ サーバーを構成することで、分散 Web サービスのアクセス制御を実現できます。アクセス制御ポリシーを適切に構成することで、システムのセキュリティと信頼性を向上させることができます。


上記は、分散 Web サービスのアクセス制御を実装するために Nginx プロキシ サーバーを構成する方法についての紹介です。

以上が分散 Web サービスのアクセス制御を実装するために Nginx プロキシ サーバーを構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。