Rumah >pembangunan bahagian belakang >tutorial php >Penyelesaian kepada ralat 502 dalam program PHP yang digunakan oleh Nginx

Penyelesaian kepada ralat 502 dalam program PHP yang digunakan oleh Nginx

王林
王林asal
2023-05-11 08:49:582811semak imbas

Antara pelayan web, gabungan Nginx dan PHP sering dipilih sebagai pilihan terbaik untuk perniagaan kecil dan sederhana serta laman web peribadi. Ia cekap, pantas dan kos rendah, menjadikannya alat yang biasa digunakan dalam pembangunan web. Walau bagaimanapun, kerjasama Nginx dan PHP kadangkala menyebabkan ralat 502 Bad Gateway. Dalam artikel ini, kami akan meneroka masalah ini dan penyelesaiannya.

1. Apakah ralat 502 Bad Gateway?

Ralat Gerbang Buruk 502, juga dipanggil ralat get laluan buruk, ialah kod status ralat antara pelayan web dan get laluan. Apabila permintaan sampai ke pelayan daripada get laluan, jika respons yang dikembalikan oleh pelayan tamat tempoh atau mempunyai ralat, get laluan tidak akan berjaya memperoleh data respons. Pada masa ini, get laluan akan menghantar ralat 502 kepada pelanggan.

2. Mengapakah ralat 502 Bad Gateway berlaku?

Intipati mekanisme penggunaan Nginx dan PHP adalah untuk memajukan Nginx sebagai proksi terbalik. Walau bagaimanapun, ralat 502 Bad Gateway biasanya berlaku apabila PHP membeku dan ranap semasa berjalan. Masalah ini mungkin disebabkan oleh ralat kod PHP, versi PHP terlalu rendah, tamat masa berjalan PHP tidak mencukupi, dsb. Selain itu, pelarasan yang tidak munasabah pada kernel sistem dan sumber perkakasan pelayan yang tidak mencukupi juga boleh menyebabkan ralat ini berlaku.

3. Bagaimana untuk menyelesaikan ralat 502 Bad Gateway?

3.1. Konfigurasikan tamat masa PHP

Dengan mengubah suai tamat masa PHP dalam fail konfigurasi nginx, anda boleh mengelakkan 502 ralat get laluan buruk. Dalam fail konfigurasi nginx, anda boleh menambah kandungan berikut:

location ~* .php$ {
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_read_timeout 600;//修改超时时间为600秒
    fastcgi_buffer_size 512k;
    fastcgi_buffers 4 512k;
    include         fastcgi_params;
}

Dengan menetapkan parameter fastcgi_read_timeout, anda boleh menetapkan tamat masa kepada 600 saat, yang boleh meningkatkan masa pelaksanaan skrip PHP dan mengelakkan berlakunya 502 ralat .

3.2. Kemas kini kernel pelayan

Jika masalah masih wujud selepas anda mengemas kini tamat masa PHP, maka anda perlu menyemak sama ada kernel pelayan dan versi PHP anda serasi. Jika versi kernel terlalu rendah, atau versi PHP terlalu rendah, sistem mungkin menghadapi masalah prestasi. Dengan mengemas kini kernel pelayan atau versi PHP, anda boleh memastikan bahawa sistem mendapat versi terkini keselamatan dan pengoptimuman prestasi, dengan itu mengelakkan berlakunya ralat 502 Bad Gateway.

3.3. Laraskan konfigurasi NGINX

Jika masalah berterusan, anda boleh cuba melaraskan beberapa tetapan fail konfigurasi Nginx. Tetapan ini termasuk:

Tingkatkan bilangan proses_pekerja
Tingkatkan jumlah sambungan_pekerja
Tingkatkan saiz fastcgi_buffers dan fastcgi_buffer_size

Meningkatkan bilangan pekerja_processes dan akan membolehkan lebih banyak pengguna_sambungan_pekerja untuk mengakses tapak web pada masa yang sama, Dan meningkatkan saiz fastcgi_buffers dan fastcgi_buffer_size akan membolehkan skrip PHP berjalan lebih pantas dan mengembalikan respons yang lebih pantas.

4. Ringkasan

Nginx dan PHP ialah alat yang berkuasa untuk membina aplikasi web. Walau bagaimanapun, apabila ia digabungkan, ralat 502 Bad Gateway mungkin berlaku. Dalam artikel ini, kami membincangkan punca dan penyelesaian kepada masalah ini Anda boleh mengelakkan ralat 502 Bad Gateway dengan melaraskan tamat masa PHP, mengemas kini kernel pelayan, melaraskan konfigurasi Nginx, dsb. Amalan telah membuktikan bahawa kaedah ini berjaya menyelesaikan masalah. Jika anda menghadapi masalah lain, sila rujuk kepada dokumentasi rasmi Nginx dan PHP atau dapatkan sokongan teknikal profesional.

Atas ialah kandungan terperinci Penyelesaian kepada ralat 502 dalam program PHP yang digunakan oleh Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn