Tempah Konsultasi Hantar Tiket

Mengoptimumkan Prestasi Gerbang API Nginx: Tamat Masa dan Penimbalan Hulu

Ketahui cara mendiagnosis dan menyelesaikan masalah prestasi dalam Nginx apabila bertindak sebagai gerbang API, termasuk tetapan tamat masa hulu, penimbal proksi, dan penggumpalan sambungan.

Mengoptimumkan Prestasi Gerbang API Nginx: Tamat Masa dan Penimbalan Hulu
Performance 6min 19 paparan 2026-07-28
gerbang APIpenalaan prestasinginxkonfigurasi tamat masa

Senario

Pasukan anda menggunakan Nginx sebagai gerbang API untuk mengarahkan trafik ke beberapa perkhidmatan mikro. Kebelakangan ini, pengguna melaporkan respons lambat dan tamat masa yang berselang. Panduan ini membimbing mendiagnosis dan menyelesaikan isu prestasi biasa yang disebabkan oleh konfigurasi tamat masa hulu dan penimbal proksi yang salah.

Gejala

  • Kependaman meningkat (p95 > 5s)
  • Sambungan hulu tamat masa (504 Gateway Timeout)
  • Penggunaan CPU pekerja nginx tinggi dengan banyak sambungan dalam keadaan CLOSE_WAIT

Diagnosis

  1. Periksa log ralat nginx: tail -f /var/log/nginx/error.log | grep upstream
  2. Analisa masa respons hulu menggunakan curl -w: curl -w "Masa sambung: %{time_connect}\nTTFB: %{time_starttransfer}\nJumlah: %{time_total}\n" -o /dev/null -s http://localhost/your-endpoint
  3. Semak konfigurasi nginx semasa untuk tetapan proksi: grep -E "proxy_(read|connect|send)_timeout|proxy_buffer" /etc/nginx/conf.d/*.conf

Perintah

  • Untuk menambah tamat masa hulu dari 60s lalai kepada 120s untuk lokasi tertentu: location /api/ { proxy_pass http://backend; proxy_connect_timeout 30; # tamat masa sambungan hulu proxy_read_timeout 120; # tunggu respons dari hulu proxy_send_timeout 30; # menghantar permintaan ke hulu }
  • Untuk melaraskan penimbal proksi (mengurangkan I/O cakera dan memperbaiki penstriman): proxy_buffering on; proxy_buffer_size 4k; proxy_buffers 8 4k; proxy_busy_buffers_size 8k;
  • Untuk membolehkan sambungan keepalive ke hulu bagi penggunaan semula: upstream backend { server 10.0.1.1:8080; keepalive 32; # sambungan idle maksimum } # dalam location: proxy_http_version 1.1; proxy_set_header Connection "";

Kawalan Risiko

  • Sebelum memuat semula nginx, uji konfigurasi: nginx -t
  • Gunakan pengedaran secara beransur-ansur menggunakan canary atau blue-green jika boleh.
  • Pantau kadar ralat dan kependaman selepas perubahan. Pertimbangkan untuk menetapkan amaran.

Pengembalian (Rollback)

  • Kembalikan fail konfigurasi dari sandaran atau kawalan versi.
  • Jalankan nginx -t dan systemctl reload nginx (atau nginx -s reload).
  • Sahkan dengan arahan ujian yang sama.

Pengesahan

  • Ulang curl -w dan periksa bahawa TTFB berkurang.
  • Periksa log ralat nginx untuk mengurangkan tamat masa.
  • Gunakan ab atau wrk untuk ujian beban: ab -n 1000 -c 100 http://localhost/your-endpoint
  • Lihat penggunaan sumber sistem: top, netstat -tan | grep :80 | wc -l

Bila Menghantar Tiket OpsGlobal

  • Jika selepas pelarasan, kependaman masih tinggi atau ralat berterusan.
  • Jika pelayan hulu kurang prestasi dan memerlukan pelarasan perkakasan/sumber awan.
  • Untuk nasihat seni bina mengenai penskalaan Ingress Nginx dalam Kubernetes (misalnya, mengoptimumkan konfigurasi Ingress Controller).

Senario Penggunaan

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

Latar Belakang Masalah

Ketahui cara mendiagnosis dan menyelesaikan masalah prestasi dalam Nginx apabila bertindak sebagai gerbang API, termasuk tetapan tamat masa hulu, penimbal proksi, dan penggumpalan sambungan.

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