Tempah Konsultasi Hantar Tiket

Penalaan Prestasi Gerbang API Nginx: Dari Diagnosis hingga Pengoptimuman

Panduan praktikal mendalam untuk menala Nginx sebagai gerbang API bagi prestasi, merangkumi pengenalpastian senario, analisis gejala, diagnosis, arahan konfigurasi, kawalan risiko, rollback, pengesahan, dan bila perlu menghantar tiket kepada OpsGlobal.

Penalaan Prestasi Gerbang API Nginx: Dari Diagnosis hingga Pengoptimuman
Performance 6min 5 paparan 2026-06-12
KubernetesSRE

Senario

Sebuah platform e-dagang menggunakan Nginx sebagai gerbang API untuk penghalaan dan had kadar. Semasa jualan kilat, lonjakan trafik menyebabkan kependaman tinggi dan tamat masa permintaan.

Gejala

  • Masa tindak balas API melonjak dari ~50ms ke >500ms;
  • Ralat 504 melebihi 5% daripada jumlah permintaan;
  • Log ralat Nginx menunjukkan mesej upstream timed out berulang.

Diagnosis

  1. Periksa proses pekerja: ps aux | grep nginx – pastikan pekerja == teras CPU.
  2. Statistik sambungan: Dayakan stub_status dan query curl http://localhost/nginx_status untuk sambungan aktif, baris gilir menunggu.
  3. Masa tindak balas hulu: Parse log akses untuk masa tindak balas hulu: tail -f /var/log/nginx/access.log | awk '{print $NF}'.
  4. Sumber sistem: top -bn1 | head -20 untuk CPU/memori; vmstat 1 10 untuk pertukaran konteks.

Arahan Penalaan

Ubah suai /etc/nginx/nginx.conf:

events {
    worker_connections 4096;      # Tingkatkan berdasarkan ulimit -n
    use epoll;                    # Model acara berprestasi tinggi di Linux
    multi_accept on;              # Terima semua sambungan baharu sekali gus
}
http {
    keepalive_timeout 65;
    keepalive_requests 1000;      # Maksimum permintaan setiap sambungan keepalive
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    upstream backend {
        keepalive 32;             # Kumpulan sambungan ke hulu
        server 10.0.0.1:8080;
    }
    server {
        location /api/ {
            proxy_pass http://backend;
            proxy_buffer_size 8k;  # Tambah buffer untuk kurangkan I/O cakera
            proxy_buffers 8 8k;
            proxy_busy_buffers_size 16k;
        }
    }
}

Uji: nginx -t; muat semula: nginx -s reload.

Kawalan Risiko

  • Lakukan perubahan semasa trafik rendah;
  • Sandaran konfigurasi: cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak;
  • Laraskan parameter secara berperingkat, pantau papan pemuka;
  • Sediakan skrip rollback.

Rollback

Jika masalah timbul selepas muat semula:

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

Pengesahan

  1. Ujian beban: ab -n 10000 -c 200 https://your-api.example.com/api/ – ukur kependaman dan kadar ralat.
  2. Pemantauan masa nyata: dump konfigurasi dengan nginx -T dan tail log akses untuk memerhati masa hulu.
  3. Bandingkan sebelum/selepas: kependaman, throughput, peratus ralat.

Bila Menghantar Tiket OpsGlobal

  • Sasaran prestasi masih tidak tercapai selepas penalaan;
  • Perlu pelarasan parameter kernel (cth. net.core.somaxconn) atau pengoptimuman peringkat OS;
  • Disyaki pepijat Nginx atau memerlukan modul tersuai;
  • Kekurangan tetingkap perubahan pengeluaran atau memerlukan SLA khusus.

Senario Penggunaan

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

Latar Belakang Masalah

Panduan praktikal mendalam untuk menala Nginx sebagai gerbang API bagi prestasi, merangkumi pengenalpastian senario, analisis gejala, diagnosis, arahan konfigurasi, kawalan risiko, rollback, pengesahan, dan bila perlu menghantar tiket kepada 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.

Tiket Hubungi WhatsApp Konsultasi