Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menyelesaikan nginx prompt 500 Ralat Pelayan Dalaman

Bagaimana untuk menyelesaikan nginx prompt 500 Ralat Pelayan Dalaman

WBOY
WBOYke hadapan
2023-05-27 23:27:362997semak imbas

Dalam kes sambungan serentak yang tinggi, nginx ialah alternatif yang baik kepada pelayan apache. nginx juga boleh digunakan sebagai pelayan pengimbangan beban lapisan 7. Mengikut keputusan ujian, nginx 0.6.31 + php 5.2.6 (fastcgi) boleh menahan lebih daripada 30,000 sambungan serentak, yang bersamaan dengan 10 kali ganda apache dalam persekitaran yang sama.
Tetapi ramai orang akan mendapat 500 ralat apabila menggunakan nginx Menurut penggunaan saya, sebahagian besar sebabnya ialah pemegang fail terbuka terlalu kecil.
Di Linux, gunakan arahan ini untuk meningkatkan pemegang fail yang dibuka semasa proses.
ulimit -shn 51200
Secara lalai, hanya 1000 digunakan Apabila bilangan pautan kecil, ia tidak dapat dilihat Menggunakan kaedah pemprosesan ini boleh menghalang 500 ralat daripada berlaku.
Apabila saya melawat tapak web hari ini, saya kadang-kadang menemui 500 halaman ralat pelayan dalaman
Selepas menyemak maklumat yang berkaitan, saya fikir ia disebabkan oleh akses yang berlebihan dan proses kernel sistem yang terhad seperti berikut:
$ ulimit -n
11095
Atur cara mengehadkan hanya 11095 fail untuk dibuka Arahan ulimit menetapkan bilangan deskriptor fail yang boleh dimiliki oleh proses pengguna semasa nampaknya nombor serentak simulasi Terdapat terlalu banyak anda perlu melaraskan bilangan tetapan serentak dalam nginx.conf. (Hos konfigurasi saya mempunyai memori 2g dan cpu 2.8g.)


Salin kod tersebut adalah seperti berikut:

vi /etc/nginx/nginx.conf

events {

worker_connections 1024;
}

dilaraskan untuk


Salin kod Kod adalah seperti berikut:

events {

worker_connections 10240;

}

Masalah di atas masih akan berlaku, gunakan

[root@qimutian nginx]# cat /proc/sys/fs/file-max

8192
Bilangan maksimum fail terbuka dalam sistem fail
[root@qimutian nginx]# ulimit - n
1024
Atur cara mengehadkan hanya 1024 fail yang boleh dibuka
Gunakan [root@qimutian nginx] # ulimit -n 8192 Laraskan
atau laraskan bilangan fail terbuka secara kekal dengan menambahkannya di hujung fail permulaan /etc/rc.d/rc.local (tambah fs.file-max=8192 di hujung /etc/sysctl.conf)
ulimit -n 8192
Laraskan bilangan buka fail dalam centos5
Gunakan ulimit -a dan ketahui bahawa fail terbuka tidak boleh melebihi 1024 secara lalai Semasa ujian tekanan semalam, ralat 500 telah berlaku. Sila semak
untuk butiran 500 ralat pelayan dalaman berlaku dalam nginx
I. melihat pada waktu pagi dan mendapati bahawa ia telah dilaraskan seperti berikut
Kaedah 1 (pelarasan kekal)
vi /etc/security/limits.conf
Tambah di hujung fail :
* soft nofile 8192
* hard nofile 20480
Pada masa yang sama, tambah
fs.file-max=8192
ke penghujung vi /etc/sysctl.conf dan mulakan semula, gunakan ulimit -n untuk melihat Nombor sudah 8192
Kaedah 2 (penggunaan sementara)
Input ulimit -n 8192 terus dalam terminal dan tekan Enter untuk menjadi ok

500 ralat pelayan dalaman Tambahan ralat:
1. Ruang cakera keras penuhGunakan df -k untuk menyemak sama ada ruang cakera keras penuh. Membersihkan ruang cakera keras boleh menyelesaikan 500 ralat. Jika log akses didayakan dalam nginx, sebaiknya tutup log akses apabila ia tidak diperlukan. Log akses mengambil banyak ruang cakera keras.
2. ralat fail konfigurasi nginx
Ini tidak merujuk kepada ralat sintaks Jika nginx mempunyai ralat sintaks dalam fail konfigurasi, ia akan menggesa apabila ia dimulakan. Semasa mengkonfigurasi penulisan semula, 500 ralat mungkin berlaku jika beberapa peraturan tidak dikendalikan dengan betul. Sila semak peraturan penulisan semula anda dengan teliti. Jika beberapa pembolehubah dalam fail konfigurasi ditetapkan secara tidak betul, ralat 500 juga mungkin berlaku, seperti merujuk pembolehubah tanpa nilai.
3. Jika tiada masalah di atas wujud, mungkin bilangan mata wang simulasi adalah terlalu banyak, dan anda perlu melaraskan bilangan tetapan serentak dalam nginx.conf
Penyelesaiannya ialah:
1 Buka fail /etc/security/limits .conf, tambah dua ayat


Salin kod Kod adalah seperti berikut:

* soft nofile 65535

* hard nofile 65535


2 Buka /etc/ nginx/nginx.conf

Tambah baris di bawah worker_processes



Salin kod Kodnya adalah seperti berikut:

worker_rlimit_nofile 65535 ;

3 Mulakan semula nginx dan muat semula Masukkan tetapan


Salin kod Kod adalah seperti berikut:

bunuh -9 `ps -ef |. v grep |. awk '{print $2}'`

/ usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -c 100 -u www-data -f /usr/bin/php-cgi

killall -hup nginx

Mulakan semula dan lihat semula Dalam log ralat nginx, tiada ralat 500 ditemui.

4. Ini mungkin masalah pangkalan data Saya tidak menemui sebarang masalah dalam log nginx dan log php Akhirnya, saya mendapati bahawa pangkalan data tidak dapat diakses.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan nginx prompt 500 Ralat Pelayan Dalaman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam