GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana mendapatkan performa terbaik dari Server Nginx

Anda dapat menyetel hampir semua pengaturan, tetapi posting ini berkonsentrasi pada beberapa pengaturan yang penyetelannya menguntungkan sebagian besar pengguna. Ada pengaturan yang kami sarankan Anda ubah hanya jika Anda memiliki pemahaman mendalam tentang NGINX dan Linux. Jadi, Anda akan tahu Bagaimana mendapatkan kinerja terbaik dari Server Nginx

HI Guys!, Dalam posting ini pada dasarnya kita melihat penyetelan NGINX menggunakan file konfigurasinya yang terletak di /etc/nginx/nginx.conf

NGINX dikenal sebagai penyeimbang beban, cache, dan server web berperforma tinggi, mendukung lebih dari 40% situs web tersibuk di dunia. Untuk sebagian besar kasus penggunaan, pengaturan NGINX dan Linux default berfungsi dengan baik, tetapi mencapai kinerja optimal terkadang memerlukan sedikit penyetelan. Postingan blog ini membahas beberapa pengaturan NGINX dan Linux yang perlu dipertimbangkan saat menyetel sistem.

Proses Pekerja

NGINX dapat menjalankan beberapa proses pekerja, masing-masing mampu memproses sejumlah besar koneksi simultan. Anda dapat mengontrol jumlah proses pekerja dan bagaimana mereka menangani koneksi dengan arahan berikut

proses_pekerja

Jumlah proses pekerja NGINX (defaultnya adalah 1). Dalam kebanyakan kasus, menjalankan satu proses pekerja per inti CPU berfungsi dengan baik, dan kami menyarankan untuk menyetel arahan ini ke otomatis untuk mencapainya. Ada kalanya Anda mungkin ingin menambah jumlah ini, seperti saat proses pekerja harus melakukan banyak I/O disk.

koneksi_pekerja

Jumlah maksimum koneksi yang dapat ditangani oleh setiap proses pekerja secara bersamaan. Standarnya adalah 512, tetapi sebagian besar sistem memiliki sumber daya yang cukup untuk mendukung jumlah yang lebih besar. Pengaturan yang sesuai bergantung pada ukuran server dan sifat lalu lintas, dan dapat ditemukan melalui pengujian.

Koneksi Keepalive

Koneksi Keepalive dapat berdampak besar pada kinerja dengan mengurangi CPU dan overhead jaringan yang diperlukan untuk membuka dan menutup koneksi. NGINX mengakhiri semua koneksi klien dan membuat koneksi terpisah dan independen ke server upstream. NGINX mendukung keepalives untuk klien dan server upstream. Arahan berikut berhubungan dengan klien keepalives:

keepalive_requests

Jumlah permintaan yang dapat dibuat klien melalui satu koneksi keepalive. Defaultnya adalah 100, tetapi nilai yang jauh lebih tinggi dapat sangat berguna untuk pengujian dengan alat pembuat beban, yang umumnya mengirimkan sejumlah besar permintaan dari satu klien.

keepalive_timeout

Berapa lama koneksi keepalive yang menganggur tetap terbuka.
Arahan berikut terkait dengan upstream keepalives

keepalive

Jumlah koneksi keepalive idle ke server upstream yang tetap terbuka untuk setiap proses pekerja. Tidak ada nilai default.

Untuk mengaktifkan koneksi keepalive ke server upstream, Anda juga harus menyertakan arahan berikut dalam konfigurasi:

Akses Pencatatan

Mencatat setiap permintaan menggunakan siklus CPU dan I/O, dan salah satu cara untuk mengurangi dampaknya adalah dengan mengaktifkan buffering access-log. Dengan buffering, alih-alih melakukan operasi tulis terpisah untuk setiap entri log, NGINX menyangga serangkaian entri dan menulisnya ke file bersama-sama dalam satu operasi.

Entri log juga ditulis saat proses pekerja membuka kembali file lognya atau dimatikan. Untuk menonaktifkan logging akses sepenuhnya, sertakan parameter off ke direktif access_log.

Kirim file

Panggilan sistem sendfile() sistem operasi menyalin data dari satu deskriptor file ke deskriptor file lainnya, sering kali mencapai nol-salinan, yang dapat mempercepat transfer data TCP. Untuk mengaktifkan NGINX untuk menggunakannya, sertakan arahan sendfile dalam konteks http atau server atau konteks lokasi. NGINX kemudian dapat menulis konten yang di-cache atau di-disk ke dalam soket tanpa beralih konteks ke ruang pengguna, membuat penulisan menjadi sangat cepat dan menghabiskan lebih sedikit siklus CPU. Namun, perhatikan bahwa karena data yang disalin dengan sendfile() melewati ruang pengguna, itu tidak tunduk pada rantai pemrosesan NGINX biasa dan filter yang mengubah konten, seperti gzip. Saat konteks konfigurasi menyertakan direktif sendfile dan direktif yang mengaktifkan filter pengubah konten, NGINX secara otomatis menonaktifkan sendfile untuk konteks tersebut.

Jadi, Anda sudah tahu Bagaimana cara mendapatkan kinerja terbaik dari Server Nginx

Situs web Nginx


Linux
  1. Linux:Bagaimana Mendapatkan Semua Log Masuk Dari Sistem?

  2. Menggunakan openssl untuk mendapatkan sertifikat dari server

  3. Bagaimana cara menjalankan server web Golang saya di latar belakang?

  1. NGINX vs Apache – Memilih Server Web Terbaik di 2022

  2. Bagaimana cara mendapatkan URL file Dropbox dari baris perintah?

  3. Bagaimana cara mendapatkan alamat IP saya dari baris perintah?

  1. Cara Mendapatkan Nama File dari Full Path di Linux

  2. 10 Cache Web Linux Terbaik Untuk Performa Lebih Baik

  3. Apache vs Nginx:Server Web Mana yang Terbaik untuk Anda?