Rumah > Artikel > Operasi dan penyelenggaraan > Bagaimana untuk mengkonfigurasi dan mengoptimumkan FastCGI dalam Nginx
fastcgi:
fastcgi dibangunkan dan ditambah baik daripada cgi. Kelemahan utama kaedah antara muka cgi tradisional ialah prestasi yang lemah, kerana setiap kali pelayan http menghadapi program dinamik, penghurai skrip perlu dimulakan semula untuk melakukan penghuraian, dan kemudian hasilnya dikembalikan kepada pelayan http. Ini hampir tidak tersedia apabila berurusan dengan akses serentak yang tinggi. Di samping itu, kaedah antara muka cgi tradisional mempunyai keselamatan yang lemah dan jarang digunakan sekarang.
Antara muka fastcgi menggunakan struktur c/s, yang boleh memisahkan pelayan http dan pelayan parsing skrip, dan memulakan satu atau lebih daemon parsing skrip pada pelayan parsing skrip. Setiap kali pelayan http menemui program dinamik, ia boleh dihantar terus ke proses fastcgi untuk pelaksanaan, dan kemudian hasilnya dikembalikan kepada penyemak imbas. Kaedah ini membolehkan pelayan http memproses permintaan statik secara eksklusif atau mengembalikan hasil pelayan skrip dinamik kepada klien, yang meningkatkan prestasi keseluruhan sistem aplikasi.
nginx tidak menyokong panggilan terus atau menghurai program luaran Semua program luaran (termasuk PHP) mesti dipanggil melalui antara muka fastcgi. Antara muka fastcgi ialah soket di bawah Linux (soket ini boleh menjadi soket fail atau soket ip). Untuk memanggil program cgi, pembalut fastcgi juga diperlukan (pembungkus boleh difahami sebagai program yang digunakan untuk memulakan atur cara lain). Apabila nginx menghantar permintaan cgi ke soket ini, melalui antara muka fastcgi, pembungkus menerima permintaan dan kemudian menghasilkan benang baharu ini memanggil jurubahasa atau program luaran untuk memproses skrip dan membaca data pemulangan itu data yang dikembalikan dihantar ke nginx di sepanjang soket tetap melalui antara muka fastcgi, akhirnya, nginx menghantar data yang dikembalikan kepada klien Ini adalah keseluruhan proses operasi nginx+fastcgi. Proses terperinci adalah seperti yang ditunjukkan dalam rajah.
Contoh:
Contoh konfigurasi optimum parameter fastcgi dalam nginx
Selepas mengkonfigurasi nginx+fastcgi, untuk memastikan operasi berkelajuan tinggi dan stabil bagi persekitaran php di bawah nginx, anda perlu menambah beberapa arahan pengoptimuman fastcgi. Contoh pengoptimuman diberikan di bawah. Tambahkan kod berikut pada tahap http dalam fail konfigurasi utama nginx.
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=test:10m inactive=5m; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; fastcgi_cache test; fastcgi_cache_valid 200 302 1h; fastcgi_cache_valid 301 1d; fastcgi_cache_valid any 1m;
Maksud kod di atas:
Dalam baris pertama kod, laluan fail, tahap struktur direktori, masa penyimpanan kawasan kata kunci dan data bukan aktiviti masa pemadaman.
fastcgi_connect_timeout menentukan tamat masa untuk menyambung ke fastcgi hujung belakang.
fastcgi_send_timeout menentukan tamat masa untuk menghantar permintaan ke fastcgi Nilai ini ialah tamat masa untuk menghantar permintaan ke fastcgi selepas dua jabat tangan selesai.
fastcgi_read_timeout menentukan tamat masa untuk menerima respons fastcgi Nilai ini ialah tamat masa untuk menerima respons fastcgi selepas dua jabat tangan selesai.
fastcgi_buffer_size digunakan untuk menentukan saiz penimbal yang diperlukan untuk membaca bahagian pertama respons fastcgi Nilai ini menunjukkan bahawa penimbal 64kb akan digunakan untuk membaca bahagian pertama respon (pengepala respons), boleh ditetapkan kepada saiz penimbal yang ditentukan oleh pilihan fastcgi_buffers.
fastcgi_buffers menentukan bilangan dan berapa besar penimbal diperlukan secara setempat untuk menimbal permintaan tindak balas fastcgi. Jika saiz halaman yang dijana oleh skrip php ialah 256kb, maka empat penimbal 64kb akan diperuntukkan untuk caching, jika saiz halaman lebih besar daripada 256kb, maka bahagian yang lebih besar daripada 256kb akan dicache dalam laluan yang ditentukan oleh fastcgi_temp, tetapi ini adalah; bukan Pendekatan yang baik, kerana data boleh diproses lebih cepat dalam memori daripada pada cakera keras. Secara amnya, nilai ini hendaklah nilai pertengahan saiz halaman yang dijana oleh skrip PHP dalam tapak Jika saiz halaman yang dijana oleh kebanyakan skrip dalam tapak ialah 256kb, maka nilai ini boleh ditetapkan kepada "16 16k", "4. 64k", dsb.
Nilai lalai fastcgi_busy_buffers_size ialah dua kali ganda saiz fastcgi_buffers.
fastcgi_temp_file_write_size menunjukkan berapa besar blok data digunakan semasa menulis fail cache Nilai lalai adalah dua kali ganda daripada fastcgi_buffers.
Dayakan cache fastcgi dan namakan ia merujuk kepada peranan fastcgi_cache. Menghidupkan cache sangat berguna, ia boleh mengurangkan beban pada CPU dengan berkesan dan menghalang ralat 502 daripada berlaku, tetapi menghidupkan cache juga boleh menyebabkan banyak masalah, bergantung pada situasi tertentu.
fastcgi_cache_valid, fastcgi digunakan untuk menentukan masa cache kod respons Nilai dalam contoh menunjukkan bahawa 200 dan 302 respons akan dicache selama satu jam, 301 respons akan dicache. selama 1 hari, dan respons lain akan dicache selama 1 minit.
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi dan mengoptimumkan FastCGI dalam Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!