Tempah Konsultasi Hantar Tiket

Penalaan Prestasi Gerbang API Nginx: Daripada Gejala kepada Penyelesaian

Panduan mendalam untuk mendiagnosis dan membaiki latensi tinggi dan ralat 502 pada Nginx sebagai gerbang API, termasuk arahan boleh laku, konfigurasi, langkah pengembalian, dan bila perlu eskalasi.

Penalaan Prestasi Gerbang API Nginx: Daripada Gejala kepada Penyelesaian
Performance 6min 30 paparan 2026-07-20
NginxGerbang APIPenalaan PrestasiKubernetes

Senario

Bayangkan Nginx berfungsi sebagai gerbang API dalam kluster Kubernetes. Semasa waktu puncak, pengguna melaporkan muatan halaman perlahan dan ralat 502 Bad Gateway sekali-sekala. Pasukan operasi ditugaskan untuk menyelesaikannya.

Gejala

  • Latensi P99 melonjak dari 20ms ke 500ms
  • Log ralat Nginx menunjukkan 'upstream timed out' dan 'no live upstreams'
  • CPU worker process mencapai 90%
  • Pemeriksaan kesihatan upstream lulus, tetapi kolam sambungan Nginx habis

Diagnosis

  1. Periksa status sambungan Nginx: curl -s http://localhost/nginx_status | grep -E 'Active|Waiting'
  2. Lihat statistik upstream: curl -s http://localhost/upstream_status (memerlukan ngx_http_upstream_module)
  3. Periksa parameter kernel: sysctl net.core.somaxconn net.ipv4.tcp_max_syn_backlog
  4. Semak tetapan proxy_pass dan buffer dalam konfigurasi: nginx -T | grep -E 'proxy_buffer|proxy_busy|worker_connections'
  5. Ujian tekanan dengan h2load: h2load -c 100 -n 10000 -H 'Host: example.com' http://localhost/

Arahan & Tindakan

Laraskan proses pekerja dan sambungan

worker_processes auto;
worker_rlimit_nofile 65535;
events {
    worker_connections 10240;
    multi_accept on;
    use epoll;
}

Muat semula: nginx -s reload

Optimumkan buffer proksi

proxy_buffer_size 4k;
proxy_buffers 8 16k;
proxy_busy_buffers_size 32k;
proxy_temp_file_write_size 64k;

Tingkatkan had masa upstream

proxy_connect_timeout 10s;
proxy_send_timeout 30s;
proxy_read_timeout 30s;

Laraskan parameter kernel

sysctl -w net.core.somaxconn=65535
sysctl -w net.ipv4.tcp_max_syn_backlog=65535
sysctl -w net.ipv4.tcp_tw_reuse=1

Kawalan Risiko

  • Uji perubahan konfigurasi dalam persekitaran bukan pengeluaran terlebih dahulu
  • Sahkan sintaks dengan nginx -t
  • Lakukan muat semula tanpa gangguan (nginx -s reload)
  • Untuk perubahan kernel, buat sandaran nilai asal dan kekalkan melalui /etc/sysctl.conf

Pengembalian

  1. Pulihkan konfigurasi Nginx: cp /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf && nginx -s reload
  2. Kembalikan parameter kernel: sysctl -p /etc/sysctl.conf.bak
  3. Pantau pemulihan kadar ralat

Pengesahan

  • Periksa metrik latensi: P99 sepatutnya turun di bawah 50ms
  • Log ralat: tiada entri 502/504
  • Ujian tekanan: h2load harus menunjukkan kejayaan 100%
  • Pantau selama 24 jam untuk mengesahkan kestabilan

Bila Serahkan Tiket OpsGlobal

  • Langkah di atas tidak menyelesaikan isu
  • Analisis paket mendalam (Wireshark) diperlukan
  • Perkhidmatan upstream mempunyai bottleneck prestasi yang memerlukan usaha bersama
  • Pengoptimuman jangka panjang atau perubahan seni bina diperlukan

Pakar SRE OpsGlobal boleh memberikan diagnosis dan penalaan jarak jauh untuk memastikan gerbang API anda berprestasi optimum.

Senario Penggunaan

Sesuai untuk pasukan yang menyelesaikan isu Performance dan memerlukan aliran kerja yang jelas.

Latar Belakang Masalah

Panduan mendalam untuk mendiagnosis dan membaiki latensi tinggi dan ralat 502 pada Nginx sebagai gerbang API, termasuk arahan boleh laku, konfigurasi, langkah pengembalian, dan bila perlu eskalasi.

Langkah Penyelesaian

Sahkan impak dan perubahan terkini, kumpul log, konfigurasi dan metrik, kemudian baiki mengikut risiko.

Contoh Arahan

Gantikan contoh dengan nama sumber sebenar dan simpan kata laluan, token atau kunci dalam pembolehubah persekitaran.

Risiko

Sebelum operasi produksi, semak sandaran, akses, tetingkap perubahan dan pelan rollback.

Pelan Rollback

Simpan konfigurasi dan versi asal; rollback konfigurasi, imej atau perubahan pangkalan data jika metrik tidak normal.

Senarai Serahan

Rekod punca isu, arahan penting, langkah pembaikan, hasil pengesahan dan cadangan susulan.

!

Perlu bantuan isu teknikal serupa?

Jika pelayan, Kubernetes, Docker, CI/CD, pangkalan data atau pemantauan anda bermasalah, hantar log dan konfigurasi untuk diagnosis jauh.

Tiket Hubungi WhatsApp Konsultasi