ホームページ  >  記事  >  PHPフレームワーク  >  Swoole での Nginx リバース プロキシとロード バランシングの使用に関するチュートリアル

Swoole での Nginx リバース プロキシとロード バランシングの使用に関するチュートリアル

PHPz
PHPzオリジナル
2023-06-13 10:47:29928ブラウズ

Swoole は、PHP 言語用の軽量で高性能なネットワーク通信ライブラリであり、その登場により、PHP アプリケーションのパフォーマンスとスケーラビリティが大幅に向上しました。 Nginx は人気のある Web サーバーであり、リバース プロキシや負荷分散にも広く使用されています。 Swoole で Nginx のリバース プロキシと負荷分散を使用すると、Swoole をより効果的に活用できます。以下は、Nginx を使用して Swoole リバース プロキシと負荷分散を実装するチュートリアルです。

  1. Nginx のインストール

まず、Nginx をインストールする必要があります。これは、次のコマンドでインストールできます:

sudo apt-get update
sudo apt-get install nginx
  1. Nginx の構成

インストールが完了したら、Nginx を設定する必要があります。設定ファイルは /etc/nginx/sites-available/default にあります。編集用にファイルを開いて、次の内容に変更します。

upstream swoole {
  server 127.0.0.1:9501 weight=10 max_fails=3 fail_timeout=30s;
  server 127.0.0.1:9502 weight=5 max_fails=3 fail_timeout=30s;
}

server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://swoole;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

上記の構成ファイルでは、Swoole サービスによって監視される 2 つのアドレスと重みが含まれる swoole という名前のアップストリームを定義しました。また、ポート 80 をリッスンし、リバース プロキシ経由で swoole クラスターにリクエストを分散するように仮想ホストを設定しました。

  1. Swoole サービスの作成

次に、Nginx によって転送されたリクエストを受信するための単純な Swoole サービスを作成する必要があります。以下は簡単なサンプル コードです。

<?php
 
$http = new SwooleHttpServer("0.0.0.0", 9501);
 
$http->on('request', function ($request, $response) {
    $response->header("Content-Type", "text/plain");
    $response->end("Hello World
");
});
 
$http->start();

上記のコードでは、ポート 9501 でリッスンする Swoole Http サービスを作成し、リクエスト コールバック関数で Hello World 文字列を返しました。

  1. Swoole サービスを開始します

次のコマンドを実行して Swoole サービスを開始します:

php server.php

この時点で、Swoole サービスは正常に開始されました。ポート 9501 でリッスンしています。

  1. Nginx の起動

最後に、次のコマンドを実行して Nginx を起動します。

sudo service nginx start

この時点で、Nginx は正常に起動され、アクセスできるようになります。 http://example.com/ にアクセスして、Swoole サービスの応答をテストします。

  1. テスト負荷分散

Nginx の負荷分散機能をテストするには、別の Swoole Http サービスを開始して別のサーバーをシミュレートし、次のコマンドを実行して開始します。 :

php server.php --port=9502

このとき、Nginx 設定ファイルでは、swoole クラスター内の 1 つのポートの重みを 10 として、もう 1 つのポートの重みを 5 として定義しました。つまり、Nginx はリクエストの約 2/3 をポート 9501 に転送し、リクエストの 1/3 をポート 9502 に転送します。ブラウザで http://example.com/ を複数回更新することで、負荷分散機能をテストできます。

まとめ

以上の作業により、Nginxのリバースプロキシ機能と負荷分散機能をSwooleに実装することができました。 Nginx のリバース プロキシおよびロード バランシング機能は、Swoole アプリケーションでのリクエストの分散を改善し、動的 ​​Web サイトの同時実行性と安定性を向上させるのに役立ちます。

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

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