Had sambungan pelayan proksi terbalik Nginx dan kaedah penalaan baris gilir
Pelayan proksi terbalik Nginx ialah pilihan yang sangat biasa dan boleh dipercayai apabila menjalankan aplikasi rangkaian konkurensi tinggi. Walau bagaimanapun, jika had sambungan dan baris gilir permintaan tidak dikonfigurasikan dengan betul, pelayan mungkin mengalami kesesakan prestasi dan masalah penafian perkhidmatan. Artikel ini akan memperkenalkan cara menggunakan Nginx untuk mengehadkan bilangan sambungan dan mengoptimumkan baris gilir permintaan.
Had sambungan
Nginx boleh mengehadkan bilangan sambungan dengan menetapkan parameter worker_connections. Parameter ini menentukan bilangan maksimum sambungan yang boleh dikendalikan oleh setiap proses pekerja secara serentak. Apabila bilangan sambungan mencapai had ini, sambungan baharu akan ditolak.
Buka fail konfigurasi Nginx, cari blok http dan tambah atau ubah suai baris berikut:
http { ... worker_processes auto; worker_connections 1024; ... }
Dalam contoh di atas, worker_connections ditetapkan kepada 1024, yang bermaksud setiap proses pekerja boleh mengendalikan 1024 sambungan secara serentak. Bergantung pada prestasi perkakasan pelayan dan keperluan aplikasi, anda boleh membuat pelarasan berdasarkan keadaan sebenar. Sila ambil perhatian bahawa nilai worker_processes harus ditetapkan kepada berbilang bilangan teras CPU untuk menggunakan sumber pelayan sepenuhnya.
Request Queue Tuning
Apabila bilangan sambungan serentak melebihi had worker_connections, Nginx akan meletakkan permintaan dalam baris gilir menunggu untuk diproses. Anda boleh melaraskan panjang gilir permintaan dan tamat masa untuk meminimumkan kemungkinan penafian perkhidmatan.
Teruskan untuk mengedit fail konfigurasi Nginx dan menambah atau mengubah suai baris berikut:
http { ... events { accept_mutex off; worker_connections 1024; worker_processes auto; multi_accept on; use epoll; ... } ... server { ... location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 600s; proxy_connect_timeout 600s; proxy_send_timeout 600s; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; proxy_buffering on; ... } ... } }
Dalam contoh di atas, kami membuat beberapa penalaan pada baris gilir permintaan. Pertama, dengan menetapkan accept_mutex kepada mematikan, kami melumpuhkan mutex supaya berbilang proses pekerja boleh menerima sambungan baharu pada masa yang sama. Kedua, tetapkan multi_accept kepada hidup supaya Nginx memproses semua permintaan dalam baris gilir secepat mungkin. Akhir sekali, kami menetapkan masa tamat dan saiz penimbal mengikut keperluan sebenar.
Contoh Kod
Di bawah ialah contoh pelayan Node.js yang mudah, mensimulasikan aplikasi bahagian belakang.
const http = require('http'); const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World! '); }); server.listen(3000, 'localhost', () => { console.log('Server running at http://localhost:3000/'); });
Dalam contoh di atas, kami mencipta pelayan HTTP yang mudah mendengar pada port tempatan 3000. Memandangkan pelayan ini adalah untuk tujuan demonstrasi sahaja, ia hanya akan mengembalikan rentetan "Hello, World!"
Untuk menggunakan Nginx sebagai pelayan proksi terbalik, anda perlu menyimpan kod sampel di atas sebagai fail bernama server.js
dan laksanakan arahan berikut untuk memulakan pelayan: server.js
的文件,并执行以下命令来启动服务器:
node server.js
接下来,将以下Nginx配置保存为一个名为nginx.conf
的文件:
http { ... server { listen 80; location / { proxy_pass http://localhost:3000; } } }
通过执行以下命令来启动Nginx:
nginx -c /path/to/nginx.conf
现在,您可以通过访问http://localhost
rrreee
nginx.conf
: rrreee
Mulakan Nginx dengan melaksanakan arahan berikut:rrreee
Sekarang, anda boleh mengaksesnya dengan melawatihttp://localhost untuk mengakses aplikasi anda. Semua permintaan akan diproksi dan dimuatkan secara seimbang melalui pelayan Nginx. 🎜🎜Ringkasan🎜🎜Dengan mengehadkan bilangan sambungan dan menala baris gilir permintaan, anda boleh mengurus aplikasi rangkaian konkurensi tinggi dengan lebih baik. Di atas menerangkan cara menggunakan Nginx untuk mengehadkan bilangan sambungan dan mengoptimumkan baris gilir permintaan, dan menyediakan contoh kod pelayan Node.js yang mudah. Sila buat pelarasan konfigurasi yang sesuai berdasarkan keperluan sebenar dan prestasi perkakasan pelayan. 🎜
Atas ialah kandungan terperinci Had sambungan pelayan proksi terbalik Nginx dan meminta kaedah penalaan baris gilir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!