Rumah > Soal Jawab > teks badan
Apabila mengkonfigurasi nginx, masalah konfigurasi fastcgi_pass adalah seperti berikut:
location ~ \.php$ {
root /home/wwwroot;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
#fastcgi_pass unix:/tmp/php-cgi.sock;
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Terutamanya mengenai parameter fastcgi_pass,
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
#fastcgi_pass unix:/tmp/php-cgi.sock;
Apakah perbezaan antara kedua-dua kaedah ini yang manakah harus saya gunakan untuk php7?
大家讲道理2017-05-16 17:20:04
Terdapat dua cara komunikasi antara proses antara Nginx dan PHP-FPM, satu ialah TCP dan satu lagi ialah UNIX Domain Socket
TCP ialah IP plus port, yang boleh digunakan di seluruh pelayan UNIX Domain Socket rangkaian dan hanya boleh digunakan Dalam senario di mana Nginx dan PHP-FPM kedua-duanya berada pada pelayan yang sama yang mana satu untuk digunakan bergantung pada konfigurasi PHP-FPM anda:
Kaedah 1:
php-fpm.conf: listen = 127.0.0.1. :9000
nginx.conf: fastcgi_pass 127.0 .0.1:9000;
Kaedah 2:
php-fpm.conf: listen = /tmp/php-fpm.sock
nginx.conf: fastcgi.pass unix:/tmp/php sock;
di mana php-fpm.sock Ia adalah fail, dijana oleh php-fpm, jenisnya ialah srw-rw----.
Soket Domain UNIX boleh digunakan untuk dua proses yang tidak berkaitan Ia adalah mekanisme IPC yang digunakan secara meluas Sebagai contoh, komunikasi antara pelayan X Window dan program GUI adalah melalui Soket Domain UNIX Ini tidak akan berlaku tersebar dalam rangkaian. Kedua-dua Soket Domain UNIX dan sambungan panjang boleh mengelakkan masalah terlalu banyak sambungan TIME_WAIT yang disebabkan oleh kerap membuat sambungan pendek TCP Untuk dua program yang berkomunikasi antara proses, proses Soket Domain UNIX tidak akan pergi ke TCP. berkomunikasi secara langsung dalam bentuk fail dan soket aliran Jika ia adalah Soket TCP, anda perlu pergi ke lapisan IP Untuk pelayan yang berbeza, Soket TCP mempunyai lebih banyak langkah
Soket Domain UNIX:Soket Nginx <=> soket <=> PHP-FPM
Soket TCP (Nginx dan PHP-FPM berada pada pelayan berbeza):
Soket <=> TCP/IP <=> ;Penghala<=> Lapisan fizikal<=>
Seperti pelanggan baris arahan mysql, terdapat dua cara yang sama untuk menyambung ke perkhidmatan mysqld:
Gunakan Unix Socket untuk menyambung (lalai): mysql -uroot -p --protocol=socket --socket=/tmp /mysql. sock
mysql -uroot -p --protocol=tcp --host=127.0.0.1 --port=3306