Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Nginx bahagian hadapan tidak boleh memanggil php hujung belakang: penyelesaian masalah dan penyelesaian

Nginx bahagian hadapan tidak boleh memanggil php hujung belakang: penyelesaian masalah dan penyelesaian

PHPz
PHPzasal
2023-04-19 11:35:531139semak imbas

Apabila projek anda termasuk bahagian hadapan dan bahagian belakang, dan masalah "nginx bahagian hadapan tidak boleh memanggil php hujung belakang" berlaku semasa penyahpepijatan, ia mungkin memberi anda sakit kepala. Untuk menyelesaikan masalah ini, kita perlu melakukan beberapa kerja penyelesaian masalah dan penyahpepijatan. Artikel ini akan memperkenalkan anda kepada idea penyelesaian masalah dan penyelesaian secara terperinci.

Idea Penyelesaian Masalah

Sebelum menyelesaikan masalah, kita perlu terlebih dahulu memahami proses interaksi antara nginx hadapan dan php hujung belakang. Apabila penyemak imbas meminta URL, permintaan mula-mula memasuki nginx bahagian hadapan, dan nginx memajukan permintaan ke php bahagian belakang mengikut URL yang diminta php bahagian belakang memproses permintaan dan mengembalikan hasilnya, dan nginx kembali hasilnya ke pelayar.

Oleh itu, semasa proses penyelesaian masalah, kita perlu menyemak konfigurasi front-end nginx dan back-end php untuk memastikan bahawa interaksi antara mereka adalah normal.

  1. Semak konfigurasi nginx bahagian hadapan

Semak dahulu sama ada konfigurasi nginx bahagian hadapan adalah betul. Anda boleh meneruskan langkah berikut:

  1. Buka fail konfigurasi nginx dan semak sama ada terdapat konfigurasi proxy_pass yang betul dalam segmen pelayan, iaitu alamat, port dan URI PHP hujung belakang.
  2. Pastikan proses php-fpm berjalan dan mendengar pada port yang betul.
  3. Pastikan pengguna dan kumpulan nginx dan php-fpm adalah sama, ini boleh mengelakkan konflik yang disebabkan oleh isu kebenaran.
  4. Semak konfigurasi php bahagian belakang

Jika konfigurasi nginx bahagian hadapan telah disahkan, maka kita perlu menyemak sama ada konfigurasi php bahagian belakang adalah betul. Anda boleh meneruskan langkah berikut:

  1. Pastikan PHP dipasang dan versi memenuhi keperluan projek.
  2. Semak fail konfigurasi php-fpm untuk memastikan port pendengaran konsisten dengan konfigurasi proksi terbalik Nginx.
  3. Semak fail php.ini untuk memastikan tahap ralat PHP yang betul ditetapkan untuk memudahkan pengesanan masalah pada masa hadapan.
  4. Semak log

Jika tiada masalah ditemui dalam dua semakan di atas, maka kami boleh menyemak log ralat Nginx dan PHP untuk menyelesaikan masalah selanjutnya.

  • Laluan log ralat Nginx: /var/log/nginx/error.log (Ubuntu), /usr/local/var/log/nginx/error.log (macOS)
  • Laluan log ralat PHP: /usr/local/var/log/php-fpm.log (macOS)

Dalam log, anda boleh melihat maklumat ralat tertentu, serta cap waktu yang sepadan dan meminta URL. Ini akan membantu menyelesaikan masalah sumber dan penyelesaian masalah.

Penyelesaian

Sekiranya selepas penyiasatan, kami mendapati bahawa masalah yang front-end nginx tidak boleh memanggil back-end php masih wujud, maka kami perlu menyelesaikan masalah ini dengan lebih lanjut. Berikut ialah beberapa penyelesaian yang mungkin:

  1. Mulakan semula perkhidmatan

Jika proses nginx atau php-fpm tiba-tiba berhenti, permintaan mungkin tidak diproses seperti biasa. Pada ketika ini, kita boleh cuba memulakan semula proses nginx dan php-fpm dan menguji permintaan itu semula.

  1. Semak rangkaian

Jika nginx bahagian hadapan dan php hujung belakang dijalankan pada pelayan yang berbeza, maka kita perlu memastikan bahawa sambungan rangkaian adalah normal. Anda boleh menguji sambungan rangkaian antara pelayan melalui arahan ping atau telnet untuk menyelesaikan masalah selanjutnya.

  1. Semak firewall

Jika firewall menyekat komunikasi antara front-end nginx dan back-end php, permintaan mungkin tidak diproses secara normal. Pada ketika ini, kita perlu menyemak konfigurasi tembok api pelayan untuk memastikan bahawa nginx boleh mengakses proses php-fpm.

  1. Semak SELinux

SELinux ialah modul keselamatan di Linux yang mengehadkan hak akses proses. Jika SELinux menyekat komunikasi antara nginx dan php-fpm, permintaan mungkin tidak diproses dengan betul. Anda boleh menyemak sama ada SELinux menyekat komunikasi antara nginx dan php-fpm dengan mendayakan pengelogan SELinux.

Kesimpulan

Masalah yang front-end nginx tidak boleh memanggil back-end php mungkin disebabkan oleh pelbagai faktor. Semasa proses penyelesaian masalah, kita perlu menjalankan pemeriksaan dan penyahpepijatan langkah demi langkah mengikut prestasi masalah, mencari punca masalah dan menyelesaikannya. Timbunan batu menjadikan gunung, dan timbunan ketiak membuat bulu Selagi kita bertahan dengan hati, masalah sentiasa dapat diselesaikan.

Atas ialah kandungan terperinci Nginx bahagian hadapan tidak boleh memanggil php hujung belakang: penyelesaian masalah dan penyelesaian. 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