ホームページ  >  に質問  >  本文

php7 - Nginx の fastcgi_pass に関する構成の問題

nginxを設定する際のfastcgi_passの設定問題は以下の通りです:

リーリー

主に fastcgi_pass パラメータについて、

リーリー

これら 2 つの方法の違いは何ですか? php7 ではどちらを使用する必要がありますか?

某草草某草草2713日前597

全員に返信(1)返信します

  • 大家讲道理

    大家讲道理2017-05-16 17:20:04

    Nginx と PHP-FPM 間のプロセス間通信には 2 つの方法があり、1 つは TCP で、もう 1 つは UNIX ドメイン ソケットです。
    TCP は IP プラス ポートであり、UNIX ドメイン ソケットは経由しません。 Nginx と PHP-FPM の両方が同じサーバー上にあるシナリオでのみ使用できます。どちらを使用するかは PHP-FPM 構成によって異なります:
    方法 1:
    php-fpm.conf: listen = 127.0.0.1 :9000
    nginx.conf: fastcgi_pass 127.0 .0.1:9000;
    方法 2:
    php-fpm.conf: listen = /tmp/php-fpm.sock
    nginx.conf: fastcgi_pass unix:/tmp/php-fpm. sock;
    ここで php-fpm.sock これは php-fpm によって生成されたファイルで、タイプは srw-rw---- です。

    UNIX ドメイン ソケットは、現在広く使用されている IPC メカニズムであり、X Window サーバーと GUI プログラムの間の通信は、システム カーネルで行われます。 UNIX ドメイン ソケットと長い接続の両方で、TCP の短い接続が頻繁に作成されることによって発生する過剰な TIME_WAIT 接続の問題を回避できます。プロセス間で通信する 2 つのプログラムの場合、UNIX ドメイン ソケットのプロセスは TCP に移行しません。レイヤー、ファイルとストリームソケットの形式で直接通信します。TCP ソケットの場合は、IP レイヤーに移動する必要があります。

    UNIX ドメイン ソケット:
    Nginx <=> PHP-FPM
    TCP ソケット (ローカル ループバック):
    Nginx <=> TCP/IP <=>ソケット <=> PHP-FPM
    TCP ソケット (Nginx と PHP-FPM は別のサーバーにあります):
    Nginx <=> 物理層 <=> >=> 物理層<=> PHP-FPM

    mysql コマンド ライン クライアントと同様に、mysqld サービスに接続するには 2 つの同様の方法があります:

    Unix ソケットを使用して接続します (デフォルト):
    mysql -uroot -p --protocol=socket --socket=/tmp /mysql.sock
    TCP 接続を使用します:mysql -uroot -p --protocol=socket --socket=/tmp/mysql.sock
    使用TCP连接:
    mysql -uroot -p --protocol=tcp --host=127.0.0.1 --port=3306mysql -uroot -p --protocol=tcp --host=127.0.0.1 --port=3306

    返事
    0
  • キャンセル返事