ホームページ > バックエンド開発 > PHPチュートリアル > PHP-FPM、Nginx、FastCGI の関係についての簡単な説明

PHP-FPM、Nginx、FastCGI の関係についての簡単な説明

青灯夜游
リリース: 2023-04-10 08:00:02
転載
3120 人が閲覧しました

この記事では、PHP-FPM、Nginx、FastCGI の関係、および Nginx リバース プロキシの構成と負荷分散について説明します。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHP-FPM、Nginx、FastCGI の関係についての簡単な説明

PHP-FPM、Nginx、FastCGI の関係

FastCGI はプロトコルです。アプリケーションとWEBサーバーをつなぐ架け橋。 Nginx は PHP-FPM と直接通信できませんが、FastCGI を通じて処理するためにリクエストを PHP-FPM に渡します。

location ~ \.php$ {
    try_files $uri /index.php =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}
ログイン後にコピー

ここで、fastcgi_pass はすべての php リクエストを処理のために php-fpm に転送します。 netstat コマンドを使用すると、ポート 127.0.0.1:9000 で実行されているプロセスが php-fpm であることがわかります。

PHP-FPM、Nginx、FastCGI の関係についての簡単な説明

Nginx reverse proxy

Nginx リバース プロキシの最も重要な命令は、次のような proxy_pass です。

location ^~ /seckill_query/ {
    proxy_pass http://ris.filemail.gdrive:8090/;
    proxy_set_header Host ris.filemail.gdrive;
}

location ^~ /push_message/ {
    proxy_pass http://channel.filemail.gdrive:8090/;
    proxy_set_header Host channel.filemail.gdrive;
}

location ^~ /data/ {
    proxy_pass http://ds.filemail.gdrive:8087/;
    proxy_set_header Host ds.filemail.gdrive;
}
ログイン後にコピー

ロケーションを介して URL パスを照合し、処理のために別のサーバーに転送します。

リバース プロキシは、アップストリームの負荷分散を通じて実装することもできます。

Nginx 負荷分散

アップストリーム モジュールの紹介:

負荷分散モジュールはデータのダウンロードに使用されますfrom "upstream" ディレクティブで定義されたバックエンド ホストのリストからホストを選択します。 nginx は、まず負荷分散モジュールを使用してホストを見つけ、次にアップストリーム モジュールを使用してホストと対話します。

負荷分散構成:

upstream php-upstream {
    ip_hash;

    server 192.168.0.1;
    server 192.168.0.2;
}

location / {
    root   html;
    index  index.html index.htm;
    proxy_pass http://php-upstream;
}
ログイン後にコピー

この例では、php-upstream の負荷分散構成を定義し、proxy_pass リバース プロキシ ディレクティブを通じてこの構成を適用します。ここで使用される ip_hash アルゴリズムには多くの負荷分散アルゴリズムがあるため、すべてを 1 つずつリストすることはしません。

負荷分散は、fastcgi_pass でも使用できます。

例:

fastcgi_pass http://php-upstream
ログイン後にコピー

質問

リバース プロキシと負荷の関係は何ですか?バランシング

リバース プロキシとロード バランシングという 2 つの単語は一緒に表示されることがよくありますが、実際には異なる概念です。ロード バランシングでは、異なるマシンへの分散を要求するアルゴリズムまたは戦略に重点が置かれており、実際には次のように動作します。リバースプロキシ。

proxy_pass と fastcgi_pass の違い

1 つはリバース プロキシ モジュールで、もう 1 つは処理のために fatcgi バックエンドに転送されます。

PHP-FPM、Nginx、FastCGI の関係についての簡単な説明

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHP-FPM、Nginx、FastCGI の関係についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート