Tempah Konsultasi Hantar Tiket

Penalaan Prestasi Nginx API Gateway: Dari Diagnosis ke Pemulihan

Panduan praktikal mendiagnosis dan menala Nginx sebagai API gateway, merangkumi penimbal, keepalive, dan masa tamat dengan prosedur pemulihan selamat.

Penalaan Prestasi Nginx API Gateway: Dari Diagnosis ke Pemulihan
Performance 6min 48 paparan 2026-07-01
NginxAPI GatewayPenalaan Prestasi

Senario

Sebuah API gateway e-dagang (Nginx) mengalami lonjakan latensi P99 dari 50ms ke 3s semasa jualan kilat, dengan beberapa permintaan kembali 502. Hulu adalah aplikasi Spring Boot dalam Kubernetes.

Gejala

  • Latensi P99 >2s
  • Peningkatan ralat sambungan hulu (upstream timed out)
  • Log ralat Nginx: "upstream prematurely closed connection"
  • CPU worker Nginx tinggi walaupun trafik di bawah puncak

Diagnosis

  1. Semak status Nginx: curl http://localhost/nginx_status – lihat Active connections dan Waiting.
  2. Stub_status: nisbah accepts/handled rendah menunjukkan penggunaan semula sambungan rendah.
  3. Ujian beban dengan wrk: wrk -t4 -c200 -d30s http://gateway/api ukur taburan latensi.
  4. Analisis log akses: awk '{print $NF}' access.log | sort | uniq -c | sort -rn untuk melihat kumpulan masa respons.

Perintah Penalaan

1. Dayakan Keepalive Hulu

Edit blok upstream:

upstream backend {
    server app-svc:8080;
    keepalive 32;
}

Lulus header keep-alive dalam location:

proxy_set_header Connection "";
proxy_http_version 1.1;

2. Penalaan Penimbal

proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 8 32k;
proxy_busy_buffers_size 64k;
client_body_buffer_size 128K;

3. Pelarasan Masa Tamat

proxy_connect_timeout 10s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;

4. Sambungan Worker

event {
    worker_connections 4096;
}

Kawalan Risiko

  • Sandarkan konfigurasi: cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
  • Sahkan sintaks: nginx -t
  • Muat semula secara anggun: nginx -s reload (tanpa gangguan)
  • Uji di persekitaran pementasan dahulu

Penggulungan

cp /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf
nginx -s reload

Pengesahan

  1. Jalankan ujian beban semula: latensi P99 harus turun di bawah 200ms.
  2. Semak nginx_status: Active connections stabil, giliran Waiting rendah.
  3. Log ralat: tiada lagi entri tamat masa.
  4. Alert pemantauan dipadamkan.

Bila Hantar Tiket OpsGlobal

  • Penalaan tidak berkesan, ralat berterusan.
  • Perlu analisis mendalam gelung peristiwa epoll Nginx.
  • Kerumitan seni bina gateway berbilang awan.
  • Perlukan pembangunan modul Nginx tersuai.

Senario Penggunaan

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

Latar Belakang Masalah

Panduan praktikal mendiagnosis dan menala Nginx sebagai API gateway, merangkumi penimbal, keepalive, dan masa tamat dengan prosedur pemulihan selamat.

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