Pemantauan prestasi dan penggunaan sumber nginx adalah penting untuk mengekalkan kesihatan dan kecekapan pelayan web anda. Inilah cara anda dapat mencapai pemantauan yang komprehensif:
Halaman status nginx:
NGINX menyediakan halaman status terbina dalam yang dapat memberi anda gambaran keseluruhan sambungan semasa, sambungan aktif, dan permintaan sesaat. Untuk membolehkan ini, anda perlu mengkonfigurasi fail nginx.conf
untuk memasukkan ngx_http_stub_status_module
. Inilah cara anda melakukannya:
<code class="nginx">location /nginx_status { stub_status; access_log off; allow 127.0.0.1; # Only allow access from localhost deny all; # Deny access from anywhere else }</code>
http://yourserver/nginx_status
.Pemantauan peringkat sistem:
top
, htop
, atau mpstat
untuk menyemak keseluruhan CPU dan penggunaan memori. Alat ini memberikan pandangan masa nyata tentang bagaimana NGINX menggunakan sumber sistem.iostat
untuk memantau operasi membaca/menulis, yang boleh memberi kesan kepada prestasi Nginx, terutamanya jika pelayan anda mengendalikan banyak kandungan statik.Analisis log:
goaccess
boleh menghuraikan log ini dan statistik semasa seperti bilangan permintaan, jalur lebar, dan URL yang dikunjungi atas.Alat pemantauan pihak ketiga:
Untuk mengesan beban pelayan Nginx dan masa tindak balas, beberapa alat boleh digunakan, masing -masing menawarkan keupayaan dan tahap terperinci yang berbeza:
Modul Status Nginx:
Prometheus dan Grafana:
Peninggalan Baru:
Datadog:
GoAccess:
Menyediakan pemantauan masa nyata untuk CPU nginx dan penggunaan memori boleh dilakukan melalui langkah-langkah berikut:
Pasang ejen pemantauan:
Konfigurasikan Prometheus:
Sediakan prometheus untuk mengikis metrik dari pengeksport nod. Anda perlu membuat fail konfigurasi prometheus.yml
dan memasukkan pekerjaan yang diperlukan untuk mengikis dari pengeksport nod:
<code class="yaml">scrape_configs: - job_name: 'nginx' static_configs: - targets: ['localhost:9100'] # Assuming Node Exporter is running on port 9100</code>
Sediakan Grafana:
Makluman masa nyata:
Berdasarkan data pemantauan, berikut adalah beberapa amalan terbaik untuk mengoptimumkan prestasi nginx:
Proses Pekerja Tune:
Laraskan bilangan proses pekerja mengikut teras CPU pelayan anda. Anda boleh menetapkan ini di nginx.conf
:
<code class="nginx">worker_processes auto;</code>
Mengoptimumkan Pengendalian Sambungan:
Pantau bilangan sambungan aktif dan laraskan worker_connections
dengan sewajarnya. Ini dapat membantu mengendalikan lebih banyak sambungan serentak dengan cekap:
<code class="nginx">events { worker_connections 1024; }</code>
Dayakan caching:
Konfigurasikan caching di nginx.conf
:
<code class="nginx">proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;</code>
Mampatan gzip:
Dayakan pemampatan GZIP untuk mengurangkan jumlah data yang dipindahkan ke atas rangkaian. Pantau jalur lebar dan masa tindak balas untuk melihat manfaatnya:
<code class="nginx">gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml rss text/javascript;</code>
Gunakan pengimbangan beban:
Memantau dan menyesuaikan saiz penampan:
Berdasarkan data pemantauan anda, laraskan saiz penampan seperti proxy_buffer_size
dan proxy_buffers
untuk mengoptimumkan prestasi untuk pemindahan fail besar atau tapak lalu lintas tinggi:
<code class="nginx">proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k;</code>
Pastikan nginx dikemas kini:
Dengan mengikuti amalan terbaik ini dan terus memantau pelayan Nginx anda, anda boleh mengoptimumkan prestasinya dan memastikan ia berjalan dengan cekap di bawah beban yang berbeza -beza.
Atas ialah kandungan terperinci Bagaimana saya memantau prestasi dan penggunaan sumber nginx?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!