Hubungi kami

info@serverion.com

Hubungi kami

+1 (302) 380 3902

Menguasai Konfigurasi Nginx untuk Performa Server Web yang Optimal

Menguasai Konfigurasi Nginx untuk Performa Server Web yang Optimal

Ingin situs web yang lebih cepat dan lebih baik kinerja serverNginx dapat membantu. Dengan desain berbasis event, Nginx menangani ribuan koneksi secara efisien, menjadikannya pilihan utama untuk situs web dengan lalu lintas tinggi dan aplikasi real-time. Namun, untuk membuka potensi penuhnya, konfigurasi yang tepat adalah kuncinya.

Poin-poin Utama:

  • Meningkatkan Kinerja: Sesuaikan proses kerja dan aktifkan kompresi untuk mengurangi penggunaan sumber daya dan mempercepat respons.
  • Menangani Lalu Lintas: Gunakan penyeimbangan beban untuk mendistribusikan lalu lintas di seluruh server dan mengoptimalkan beban berat.
  • Koneksi Aman: Konfigurasikan penghentian SSL untuk meningkatkan keamanan tanpa membebani server backend.
  • Aplikasi Waktu Nyata: Siapkan dukungan WebSocket untuk komunikasi yang lancar di platform waktu nyata.
  • Memantau secara efektif: Gunakan alat seperti Prometheus dan Grafana untuk melacak kesehatan dan kinerja server.

Contoh Pengaturan Cepat:

  • Proses Pekerja: Cocok dengan inti CPU (pekerja_proses 4;).
  • Kompresi: Aktifkan Gzip (gzip aktif; gzip_comp_level 6;).
  • Pencadangan: Konfigurasikan proxy caching untuk kecepatan (jalur_cache_proxy /var/cache/nginx;).
  • Penyeimbangan Beban: Distribusikan lalu lintas dengan koneksi round-robin atau paling sedikit.

Kiat Pro: Pantau dan perbaiki pengaturan Anda secara berkala agar server Anda tetap berjalan lancar. Baik Anda mengelola situs web dengan lalu lintas tinggi, konten statis, atau aplikasi waktu nyata, konfigurasi ini dapat membuat perbedaan besar.

Penyetelan Kinerja NGINX Open Source dan NGINX Plus

NGINX

File Konfigurasi dan Pengaturan Utama Nginx

Memaksimalkan penggunaan server Nginx Anda dimulai dengan memahami berkas konfigurasinya dan menyempurnakan pengaturan utamanya. Berikut ini uraian tentang apa yang perlu Anda ketahui.

Memahami File Konfigurasi Nginx

Pengaturan Nginx dibagi menjadi dua area utama:

  • Pengaturan global:Ditemukan di /etc/nginx/nginx.conf
  • Pengaturan khusus situs:Terletak di /etc/nginx/situs-tersedia/

Sebelum menerapkan perubahan, uji konfigurasi Anda dengan nginx -t untuk memastikan bebas kesalahan.

Menyetel Proses dan Koneksi Pekerja

Proses kerja dan koneksi berperan besar dalam kinerja server Anda. Berikut panduan singkat untuk menyiapkannya:

Pengaturan Deskripsi Contoh Nilai
proses_pekerja Jumlah proses pekerja Cocok dengan inti CPU
koneksi_pekerja Koneksi maksimum per pekerja Tahun 1024 – 2048
tetap hidup_waktu_habis Waktu koneksi habis 65 detik

Tip: Sesuaikan nilai ini berdasarkan perangkat keras server Anda.

Misalnya, jika server Anda memiliki 4 inti CPU, konfigurasi Anda mungkin terlihat seperti ini:

proses_pekerja 4; acara { koneksi_pekerja 1024; } 

Setelah mengoptimalkan proses kerja, Anda dapat lebih meningkatkan kinerja dengan mengaktifkan kompresi dan caching.

Menggunakan Kompresi dan Caching Gzip

Kompresi dan caching membantu mengurangi bandwidth dan meningkatkan waktu pemuatan. Berikut cara mengonfigurasinya:

Aktifkan Kompresi Gzip:

gzip aktif; gzip_comp_level 6; gzip_types teks/teks biasa/css aplikasi/json aplikasi/javascript; 

Siapkan Caching:

proxy_cache_path /var/cache/nginx level=1:2 zona_kunci=satu:10m tidak aktif=60m; proxy_cache satu; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; 

Itu jalur_cache_proxy direktif membuat zona cache untuk konten yang sering diakses, yang menurunkan beban pada backend Anda. Anda juga dapat menggunakan buka_cache_file untuk menyimpan berkas yang sering diakses dalam memori, sehingga mengurangi penggunaan disk.

Teknik Lanjutan untuk Penyeimbangan Beban dan SSL

Berdasarkan pengoptimalan dan caching proses pekerja, teknik ini berfokus pada peningkatan distribusi dan keamanan lalu lintas.

Menyiapkan Penyeimbangan Beban

Nginx menawarkan alat yang hebat untuk menyebarkan lalu lintas masuk ke beberapa server. Berikut konfigurasi dasarnya:

backend hulu { # Default: round-robin untuk distribusi seimbang server localhost:8080; server localhost:8081; server localhost:8082; # Hapus komentar untuk koneksi paling sedikit (lebih baik untuk beban kerja yang tidak merata) # least_conn; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } 
  • Pertandingan penuh ideal untuk server dengan waktu respons yang sama.
  • Koneksi Paling Sedikit berfungsi lebih baik saat permintaan bervariasi dalam kompleksitas, membantu menghindari kelebihan beban pada server yang lebih lambat.
  • Untuk persistensi sesi, aktifkan Hash IP untuk mengarahkan pengguna ke server yang sama secara konsisten.

Mengonfigurasi Penghentian SSL

Penghentian SSL mengalihkan tugas enkripsi ke Nginx, sehingga mengurangi beban kerja pada server backend. Penelitian dari Bobcares menunjukkan bahwa hal ini dapat memangkas latensi handshake SSL hingga 50%.

Berikut cara menggabungkan penghentian SSL dengan penyeimbangan beban:

http { backend hulu { server localhost:8080; server localhost:8081; } server { listen 443 ssl; nama_server example.com; sertifikat_ssl /jalur/ke/sertifikat.crt; kunci_sertifikat_ssl /jalur/ke/kunci/privasi.kunci; protokol_ssl TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers aktif; cache_sesi_ssl dibagikan:SSL:10m; lokasi / { sandi_proksi http://backend; tajuk_pengaturan_proksi Host $host; tajuk_pengaturan_proksi X-Real-IP $remote_addr; } } } 

Tips Penting SSL:

  • Tetaplah pada TLS 1.2 dan 1.3 untuk keamanan yang lebih baik.
  • Prioritaskan cipher sisi server untuk enkripsi yang lebih kuat.
  • Aktifkan penyimpanan sesi melalui cache untuk meningkatkan kinerja.

Menyesuaikan Nginx untuk Kebutuhan Tertentu

Mengoptimalkan Nginx untuk Situs Web dengan Lalu Lintas Tinggi

Untuk situs web dengan lalu lintas tinggi, konfigurasi Nginx harus disesuaikan agar dapat menangani beban berat secara efektif. Menyesuaikan parameter utama dapat meningkatkan responsivitas server dan kinerja keseluruhan secara signifikan.

Penyesuaian Ukuran Buffer

http { ukuran_buffer_badan_klien 16k; ukuran_buffer_header_klien 4k; ukuran_badan_maks_klien 8m; buffer_header_klien_besar 4 8k; } 

Pengaturan ini memprioritaskan penggunaan memori daripada I/O disk, sehingga mempercepat penanganan permintaan. Misalnya, meningkatkan ukuran buffer badan klien mengurangi kebutuhan penulisan file sementara selama permintaan.

Manajemen Log yang Efisien

http { access_log /var/log/nginx/access.log gabungan buffer=32k flush=5dtk; error_log /var/log/nginx/error.log memperingatkan; } 

Menggunakan buffer 32KB dan interval flush 5 detik meminimalkan operasi disk sekaligus menjaga log tetap akurat dan terkini.

Pengaturan Batas Waktu

http { batas_waktu_isi_klien 12; batas_waktu_header_klien 12; batas_waktu_kirim 10; } 

Nilai batas waktu ini membantu mencegah klien lambat menghabiskan sumber daya server secara tidak perlu.

Setelah penyesuaian ini dilakukan, Nginx juga dapat disesuaikan untuk aplikasi yang memerlukan komunikasi berkelanjutan, seperti WebSockets.

Mengonfigurasi Nginx untuk Dukungan WebSocket

WebSockets merupakan komponen penting dari aplikasi real-time. Menyiapkan Nginx dengan benar untuk menangani koneksi WebSocket memastikan kinerja yang lancar bahkan saat beban berat.

peta $http_upgrade $connection_upgrade { upgrade default; '' tutup; } server { dengarkan 80; nama_server contoh.com; lokasi /websocket { proxy_pass http://backend_server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Koneksi $connection_upgrade; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; # Pengaturan batas waktu untuk koneksi WebSocket proxy_read_timeout 300dtk; proxy_send_timeout 300dtk; } } 

Detail Konfigurasi WebSocket Utama:

Direktif Tujuan
proxy_http_versi Mengaktifkan HTTP/1.1 untuk dukungan WebSocket
proxy_waktu_baca_habis Mengatur waktu maksimum antara paket data
proxy_waktu_pengiriman_habis Menentukan waktu maksimum untuk mengirim data
melewati_cache_proxy Menonaktifkan caching untuk lalu lintas WebSocket

Itu peta direktif ini secara efisien mengelola peningkatan koneksi, memastikan komunikasi WebSocket lancar.

Untuk mencegah penyalahgunaan, pembatasan kecepatan dapat diterapkan pada koneksi WebSocket:

http { limit_req_zone $binary_remote_addr zone=websocket_limit:10m rate=5r/s; lokasi /websocket { limit_req zone=websocket_limit burst=20 nodelay; # ... sisa konfigurasi WebSocket } } 

Pengaturan ini membatasi IP hingga 5 permintaan per detik dengan lonjakan 20 permintaan, melindungi terhadap serangan DoS sambil mempertahankan ketersediaan layanan.

Praktik Terbaik untuk Kinerja dan Pemantauan Nginx

Di luar pengaturan awal, menjaga konfigurasi Nginx Anda tetap optimal memastikannya dapat menangani perubahan beban kerja secara efektif.

Bidang Utama yang Perlu Difokuskan

Meningkatkan kinerja Nginx melibatkan penyempurnaan pengaturan khusus yang secara langsung memengaruhi seberapa efisien server Anda beroperasi.

Mengelola Proses Pekerja

Itu pekerja_rlimit_nofile direktif sangat penting untuk mengelola deskriptor file. Ini memastikan server Anda dapat menangani beberapa koneksi simultan tanpa mencapai batas selama periode lalu lintas tinggi:

pekerja_rlimit_nofile 65535; 

Menggunakan Open File Cache

Cache file terbuka meminimalkan I/O disk dengan menyimpan metadata untuk file yang sering diakses, yang mempercepat pengiriman konten statis:

http { open_file_cache maks=1000 tidak aktif=20dtk; open_file_cache_valid 30dtk; open_file_cache_min_uses 2; open_file_cache_errors aktif; } 

Setelah pengoptimalan ini dilakukan, pemantauan rutin menjadi penting untuk memastikan kinerja berkelanjutan dan menemukan area yang memerlukan penyesuaian lebih lanjut.

Memantau Kinerja Nginx

Pemantauan membantu melacak kinerja server Anda dan mengungkap segala hambatan atau inefisiensi. Metrik utama yang perlu diperhatikan meliputi rasio permintaan, rasio kesalahan, dan penggunaan sumber daya. Alat seperti Prometheus dan Grafana memudahkan pengumpulan dan visualisasi data ini.

Direkomendasikan Alat Pemantauan

Alat Tujuan Metrik Utama
Prometheus Mengumpulkan data kinerja langsung Tingkat permintaan, waktu respons, tingkat kesalahan
Grafana Memvisualisasikan tren kinerja Penggunaan CPU, konsumsi memori, pola lalu lintas
htop Melacak penggunaan sumber daya sistem Penggunaan proses, alokasi memori

Menyiapkan Metrik Kinerja

Aktifkan pemantauan status di Nginx dengan mengonfigurasi yang berikut ini:

lokasi /nginx_status { stub_status aktif; akses_log nonaktif; izinkan 127.0.0.1; tolak semua; } 

Pengaturan ini memberikan wawasan tentang:

  • Koneksi aktif
  • Total koneksi yang diterima
  • Statistik penanganan permintaan
  • Koneksi membaca, menulis, dan menunggu

Menganalisis Log Secara Efektif

Pencatatan log yang di-buffer dapat mengurangi beban disk dengan mengelompokkan penulisan log. Ini membantu menjaga kinerja server tanpa mengorbankan keakuratan log Anda.

"Pemantauan dan penyesuaian rutin berdasarkan data kinerja sangat penting untuk mencapai hasil yang optimal. Sangat penting untuk menghindari membuat terlalu banyak perubahan sekaligus, karena hal ini dapat mempersulit pemecahan masalah."

Opsi Hosting untuk Nginx

Memilih lingkungan hosting yang tepat sama pentingnya dengan menyempurnakan konfigurasi Nginx. Platform yang tepat memastikan pengoptimalan Anda memberikan hasil terbaik.

Fitur dari Serverion Hosting

Serverion

Serverion menawarkan platform hosting yang dirancang khusus untuk Nginx, memberikan kinerja dan keandalan yang luar biasa.

Penyimpanan dan Kinerja
Serverion menggunakan penyimpanan SSD yang dioptimalkan untuk Nginx, mengurangi latensi I/O untuk mempercepat akses ke file konfigurasi dan log.

Infrastruktur Keamanan
Dengan perlindungan DDoS tingkat perusahaan, Serverion meningkatkan keamanan Nginx. Ini memastikan waktu aktif selama serangan dan melengkapi fitur penyeimbangan beban Nginx.

Jenis Sumber Daya Spesifikasi Manfaat untuk Nginx
prosesor Xeon Quad-Core Menangani proses kerja secara efisien
RAM Hingga 16GB Meningkatkan kinerja caching
Penyimpanan berbasis SSD Mempercepat akses file
Bandwidth Kapasitas tinggi Mendukung penyeimbangan beban yang andal

Infrastruktur yang Dapat Diskalakan
Paket Serverion dirancang untuk beradaptasi dengan kebutuhan lalu lintas Anda yang terus meningkat. Ini memastikan pengaturan Nginx Anda dapat menangani peningkatan permintaan tanpa kehilangan kinerja.

"Pemantauan rutin dan pengoptimalan kinerja sangat penting saat menghosting Nginx. Lingkungan hosting yang tepat harus menyediakan sumber daya dan alat yang diperlukan untuk mempertahankan kinerja server yang optimal."

Dukungan Ahli
Tim dukungan Serverion 24/7 mencakup spesialis Nginx yang dapat membantu dengan penyesuaian konfigurasi dan penyetelan kinerja yang disesuaikan dengan kebutuhan Anda.

Kesimpulan dan Tips Akhir

Ringkasan Poin-Poin Utama

Memaksimalkan Nginx berarti berfokus pada pendekatan yang jelas dan bertahap. Mulailah dengan memahami batasan perangkat keras dan pola lalu lintas server Anda. Dari sana, sesuaikan pengaturan seperti proses pekerja, penyimpanan sementara, dan penyeimbangan beban untuk memastikan server Anda berjalan lancar dan efisien.

Langkah-Langkah untuk Memulai

  1. Validasi Konfigurasi:Sebelum membuat perubahan apa pun secara langsung, gunakan nginx -t untuk memeriksa konfigurasi Anda apakah ada kesalahan.
  2. Optimasi Inti:
    • Cocok proses_pekerja ke inti CPU server Anda (misalnya, pekerja_proses 4 untuk server 4-inti).
    • Aktifkan kompresi gzip untuk mengecilkan ukuran file sebesar 50-70%.
    • Sesuaikan ukuran buffer untuk menangani permintaan secara lebih efisien.
  3. Fitur Lanjutan:
    • Siapkan penghentian SSL untuk mengamankan koneksi.
    • Konfigurasikan penyimpanan konten dalam cache dengan pengaturan kedaluwarsa yang tepat.
    • Gunakan penyeimbangan beban yang disesuaikan dengan pola lalu lintas Anda.
    • Instal alat seperti Prometheus dan Grafana untuk memantau kinerja.

Pemantauan Kinerja: Memantau kinerja server Anda adalah hal yang penting. Lacak metrik seperti tingkat permintaan, waktu respons, dan penggunaan sumber daya untuk mendeteksi masalah apa pun sebelum memengaruhi pengguna.

"Pemantauan rutin dan pengoptimalan kinerja sangat penting saat menghosting Nginx. Kombinasi pengaturan konfigurasi dan alat pemantauan yang tepat memastikan kinerja server yang optimal dari waktu ke waktu."

Tanya Jawab Umum

Berikut adalah jawaban atas beberapa pertanyaan umum tentang konfigurasi Nginx untuk membantu Anda memecahkan masalah dan meningkatkan kinerja.

Bagaimana saya dapat memeriksa apakah Nginx sedang melakukan caching?

Untuk memeriksa apakah Nginx menyimpan konten dalam cache, periksa header respons HTTP. Cari:

  • Cache X: Nilai "HIT" berarti konten di-cache.
  • Status Cache X: Menunjukkan status caching saat ini.

Anda dapat menggunakan perintah ini untuk melihat header:

curl -I https://situswebanda.com 

CatatanPastikan header ini dikonfigurasi dalam pengaturan Nginx Anda; jika tidak, header ini tidak akan muncul dalam respons.

Berikut contoh konfigurasi untuk menyiapkan buffer secara efisien:

ukuran_buffer_badan_klien 10K; ukuran_buffer_header_klien 1K; ukuran_badan_maks_klien 8m; buffer_header_klien_besar 4 4k; 

Bagaimana cara mengaktifkan dukungan WebSocket?

Untuk mengaktifkan dukungan WebSocket, pastikan Anda kata sandi_proxy direktif menunjuk ke server backend WebSocket. Untuk petunjuk terperinci, lihat bagian sebelumnya tentang konfigurasi WebSocket.

Bagaimana saya dapat mengonfigurasi SSL dengan aman?

Gunakan konfigurasi berikut untuk menyiapkan SSL dengan aman:

server { dengarkan 443 ssl; nama_server contoh.com; sertifikat_ssl /jalur/ke/sertifikat.crt; kunci_sertifikat_ssl /jalur/ke/kunci_sertifikat; protokol_ssl TLSv1.2 TLSv1.3; sandi_ssl TINGGI:!aNULL:!MD5; } 

Bagaimana cara mengoptimalkan Nginx untuk lalu lintas tinggi?

Untuk situs web dengan lalu lintas tinggi, fokuslah pada area utama berikut:

  • Cocok proses_pekerja ke jumlah inti CPU dan meningkat koneksi_pekerja untuk menangani lebih banyak koneksi.
  • Siapkan caching yang efektif untuk mengurangi beban server.
  • Sesuaikan ukuran buffer untuk memproses permintaan secara lebih efisien.

"Pemantauan rutin dan pengoptimalan kinerja sangat penting saat menghosting Nginx. Kombinasi pengaturan konfigurasi dan alat pemantauan yang tepat memastikan kinerja server yang optimal dari waktu ke waktu."

Artikel Blog Terkait

id_ID