Senario
Gerbang API berasaskan Nginx anda mengalami kependaman tinggi dan peningkatan kadar ralat semasa trafik puncak. Perkhidmatan hulu berfungsi dengan baik, tetapi gerbang menjadi hambatan.
Gejala
- Peningkatan tamat masa klien (ralat 502/504)
- Kependaman respons melonjak dari 50ms ke 2s
- Log ralat Nginx menunjukkan 'upstream timed out' atau 'connection refused'
- Metrik sistem menunjukkan penggunaan CPU atau memori tidak normal
Diagnosis
- Periksa proses pekerja Nginx:
ps aux | grep nginx. Pastikan bilangan pekerja sama dengan bilangan teras CPU. - Periksa log ralat:
tail -f /var/log/nginx/error.log. Cari tamat masa atau ralat sambungan. - Analisis log akses:
tail -100 /var/log/nginx/access.log | awk '{print $NF}' | sort | uniq -c | sort -rn. Periksa taburan kod status. - Sahkan sintaks konfigurasi:
nginx -t. - Pantau sumber sistem:
top,free -m,iostat -x 1.
Arahan (Tindakan Utama)
# Optimumkan keepalive hulu
http {
upstream backend {
server backend1.example.com:8080;
keepalive 32; # Sambungan kekal
}
}
# Laraskan proses pekerja dan sambungan
worker_processes auto;
events {
worker_connections 1024;
multi_accept on;
}
# Tingkatkan tamat masa
proxy_connect_timeout 5s;
proxy_send_timeout 10s;
proxy_read_timeout 10s;
Kawalan Risiko
- Uji perubahan konfigurasi di luar pengeluaran
- Sahkan sintaks dengan
nginx -t - Gunakan perubahan secara berperingkat (misalnya, ubah satu pelayan hulu dahulu)
- Pantau kadar ralat dan sediakan rollback
Rollback
# Pulihkan konfigurasi asal dan muat semula
cp /etc/nginx/nginx.conf.backup /etc/nginx/nginx.conf
nginx -s reload
Pengesahan
- Periksa kependaman:
curl -w "%{time_total}" -o /dev/null -s https://api.example.com/health - Sahkan kadar ralat menurun:
tail -100 /var/log/nginx/access.log | grep -c ' 50[0-9] ' - Penggunaan sumber kembali normal
Bila Serahkan Tiket OpsGlobal
- Prestasi tidak pulih selepas mengikuti langkah di atas
- Perlu pelarasan parameter kernel (contohnya, somaxconn, tcp_tw_reuse)
- Mitigasi DDoS atau konfigurasi WAF diperlukan
- Perubahan seni bina diperlukan (contohnya, menambah lapisan cache)
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Performance dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Ketahui cara mendiagnosis dan menyelesaikan isu prestasi dalam gerbang API berasaskan Nginx, dengan langkah demi langkah arahan, kawalan risiko, dan kriteria eskalasi OpsGlobal.
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.