Rumah > Soal Jawab > teks badan
Saya mempunyai keraguan tentang penggunaan php-cgi, tolong bantu saya.
Senario hipotetikal adalah seperti berikut:
nginx memantau 192.168.1.101:80, tiada persekitaran php
index.php 192.168.1.101::/dev/shm/index.php
php-fpm mendengar 192.168.1.102:90000
Kekeliruannya ialah, semasa proses berjalan, index.php dihuraikan dan dijalankan pada 192.168.1.101, atau adakah ia dihantar ke 192.168.1.102 untuk menghurai dan menjalankan? Bolehkah sesiapa pakar menerangkan proses terperinci?
Jika anda menghuraikan dan menjalankan dalam 1.102, sebaik sahaja anda menemui pakej kod yang agak besar seperti phar atau satu fail php yang besar, adakah keseluruhan pakej dihantar bersama? Tidakkah trafik intranet kelihatan mengagumkan?
仅有的幸福2017-05-16 17:25:26
Nginx yang memantau 192.168.1.101:80 mengedarkan permintaan PHP ke 192.168.1.102:9000 yang dipantau PHP-FPM melalui fastcgi_pass PHP-FPM menghuraikan parameter $_SERVER['SCRIPT_FILENAME'] yang diluluskan oleh Nginx , penterjemah PHP dalam proses kerja PHP-FPM melaksanakan skrip dan mengembalikan hasilnya kepada Nginx melalui LAN.
Komunikasi rangkaian TCP digunakan antara proses Nginx dan PHP-FPM, manakala MOD_PHP, yang mengintegrasikan penterjemah PHP sebagai modul ke dalam proses Apache (benang), adalah berbeza sepenuhnya Melalui huluan Nginx, ia adalah mudah untuk melaksanakan pengelompokan PHP -FPM dan ketersediaan yang tinggi.
Juga:
Apache boleh digunakan dengan PHP-FPM melalui modul mod_fastcgi Dalam kes ini, adalah disyorkan bahawa Apache menggunakan MPM acara, MPM berbilang proses yang didorong oleh acara berbilang benang menggunakan PHP-FPM lalai. versi selamat, yang lebih cekap dan stabil.
Apache boleh digunakan dengan PHP-CGI melalui modul mod_fcgid Adalah disyorkan untuk menggunakan kaedah yang sama seperti di atas.
Ambil perhatian bahawa modul mod_fastcgi Apache adalah serupa dengan sokongan fastcgi yang disediakan oleh Nginx Fungsinya berbeza daripada mod_fcgid dan lebih cekap daripada mod_fcgid, kerana mod_fcgid perlu menguruskan proses PHP-CGI dengan sendirinya, manakala di bawah mod_fastcgi, proses utama PHP-FPM. menguruskan kerja FPM sendiri.
天蓬老师2017-05-16 17:25:26
Terima kasih kepada @白一子 dan @eechen untuk jawapan mereka Sebenarnya, apabila saya bertanya soalan ini, saya ingin tahu sama ada skrip php perlu dipasang pada mesin 192.168.1.102. Kerana saya menggunakan apache sebelum ini dan jarang menggunakan php-fpm~
Saya baru sahaja menemui dua pelayan untuk menyediakan persekitaran, dan saya mungkin memahaminya.
Malah, php-fpm hanya menerima pengepala daripada nginx, iaitu fastcgi_param, dan kemudian mencari SCRIPT_FILENAME, memuatkan skrip daripada cakera keras 1.102 sendiri dan melaksanakannya, iaitu proses penghantaran antara nginx dan php-fpm. Ia hanyalah pengepala dan tiada kaitan dengan skrip , dan kemudian laksanakan kod php melalui pengepala seperti apache~
Dalam erti kata lain, tanpa mengira fungsi lanjutan lain dan prinsip operasi dalaman apache, proses berjalan nginx + php-fpm dan nginx + apache pada dasarnya adalah sama~~
仅有的幸福2017-05-16 17:25:26
Ini, saya sudah berikan jawapan dalam soalan /q/1010000002753412 Carta alir diberikan dalam jawapan saya, ia sepatutnya mudah difahami