ホームページ >PHPフレームワーク >Swoole >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 サイトの他の関連記事を参照してください。