ホームページ  >  記事  >  PHPフレームワーク  >  nginxとswooleを組み合わせる方法

nginxとswooleを組み合わせる方法

(*-*)浩
(*-*)浩オリジナル
2019-12-14 14:06:302611ブラウズ

nginxとswooleを組み合わせる方法

epoll ベースの Nginx

epoll を使用すると、理論的には 1 つのプロセスがポーリングなしで無制限の接続を持つことができ、問題が真に解決されます。 c10kの。 (推奨学習: swoole ビデオ チュートリアル )

Nginx は、epoll に基づく非同期ノンブロッキング サーバー プログラムです。当然のことながら、Nginx が数百万の同時接続を簡単に処理できることは理解できます。

swoole が高い同時実行性を処理する方法

①Reactor モデルの紹介

IO 多重化非同期ノンブロッキング プログラムは、古典的な Reactor モデルを使用します。つまり、それ自体はデータの送受信を処理しません。ソケット (パイプ、eventfd、シグナルの場合もある) ハンドルのイベント変更のみを監視できます。

注: ハンドルとは何ですか?英語のハンドルは handler で、鍋やスプーンのハンドルに例えることができます。つまり、リソースの一意の識別子とリソースの ID です。このIDを介してリソースを操作できます。

Reactor は単なるイベント ジェネレーターであり、接続/受け入れ、送信/受信、クローズなどのソケット ハンドルに対する実際の操作はコールバック内で完了します。

リアクターは epoll に基づいているため、各リアクターは無数の接続リクエストを処理できます。このようにして、swoole は高い同時実行性を簡単に処理できます。

nginx 設定:

server {
    listen  80;
    server_name  www.swoole.com;
    root  /data/wwwroot/www.swoole.com;
    location / {
        if (!-e $request_filename){
            proxy_pass http://127.0.0.1:9501;
        }
    }
}

9501 は、swoole サーバーがリッスンするアドレスです。 root は静的ファイルのディレクトリに設定されます。静的ファイルをリクエストした場合は、Nginx によって直接処理されますが、リクエストされたファイルが存在しない場合は、Swoole サーバーに送信されて処理されます。

以上がnginxとswooleを組み合わせる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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