ホームページ  >  記事  >  運用・保守  >  Nginx をリバース プロキシとロード バランシングに使用する方法

Nginx をリバース プロキシとロード バランシングに使用する方法

WBOY
WBOYオリジナル
2023-08-05 21:13:411299ブラウズ

リバース プロキシと負荷分散に Nginx を使用する方法

はじめに:
Nginx は、高性能のオープン ソース Web サーバーおよびリバース プロキシ サーバーです。従来の Web サーバーのような静的ファイル サービスを提供するだけでなく、リバース プロキシ サーバーとしても機能し、クライアントの要求を複数のバックエンド サーバーに転送して負荷分散を実現します。この記事では、Nginx を使用してリバース プロキシと負荷分散構成を実装する方法を紹介します。

1. リバース プロキシ
リバース プロキシとは、Web サーバーがクライアントのリクエストを受信し、それを複数のバックエンド サーバーに転送することを意味します。クライアントはバックエンド サーバーとの接続を直接確立できず、リバース プロキシ サーバー経由でのみバックエンド サーバーと通信できます。リバース プロキシは、バックエンド サーバーの実際の IP アドレスを隠し、システムのセキュリティを向上させることができます。

構成例:
Nginx 構成ファイルで、リバース プロキシを構成するための新しいサーバー ブロックを追加します:

server {
    listen       80;
    server_name  example.com;

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

上記の構成では、listen は Nginx がリッスンするポートを指定します。 server_name には、リバース プロキシのドメイン名を指定します。 location / は、すべてのリクエストをバックエンド サーバーに転送することを意味します。 proxy_pass はバックエンド サーバーのアドレスを構成します。これは IP アドレスまたはドメイン名です。 proxy_set_header は、ホストや X-Real-IP などの HTTP ヘッダー情報を設定できます。

2. 負荷分散
負荷分散とは、システムのパフォーマンスと可用性を向上させるために、リクエストを複数のバックエンド サーバーに分散することを指します。 Nginx は、ポーリング、加重ポーリング、最小接続など、さまざまな負荷分散アルゴリズムをサポートしています。

構成例:
Nginx 構成ファイルで、新しいアップストリーム ブロックを追加してバックエンド サーバーを構成します:

upstream backend_servers {
    server 192.168.0.1:8080;
    server 192.168.0.2:8080;
    server 192.168.0.3:8080;
    server 192.168.0.4:8080;
}

server {
    listen       80;
    server_name  example.com;

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

上記の構成では、アップストリーム ブロックは複数のバックエンドを定義しますサーバーのアドレスそして港。 location ブロックでは、proxy_pass によってアップストリーム ブロックの名前が構成され、Nginx は構成された負荷分散アルゴリズムに基づいて適切なバックエンド サーバーを選択します。

3. ヘルスチェックの実装
バックエンドサーバーの可用性を確保するために、バックエンドサーバーに障害が発生した場合に、Nginx が他の正常なサーバーにリクエストを自動的に転送するヘルスチェック機能を追加できます。

設定例:
Nginx 設定ファイルで、ヘルス チェックを実装するための新しい location ブロックを追加できます:

location /check {
    access_log off;
    proxy_pass http://backend_servers;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}

上記の設定では、location /check は、リクエストがあったとき、にアクセスする / チェックする場合、Nginx はリクエストをバックエンド サーバーに転送し、返されたステータス コードをチェックします。返されたステータス コードが error、timeout、invalid_header、http_500、http_502、http_503、または http_504 の場合、Nginx はリクエストを他の通常のサーバーに転送します。

結論:
Nginx のリバース プロキシ機能と負荷分散機能を使用することで、システムのパフォーマンスと可用性を向上させることができます。この記事の紹介とコード例を通じて、リバース プロキシとロード バランシングのために Nginx を構成する方法を読者は理解できたと思います。

以上がNginx をリバース プロキシとロード バランシングに使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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