GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menyetel NGINX Untuk 2022 Mendatang?

Nginx adalah server web open source berperforma tinggi dan ringan gratis yang digunakan sebagai penyeimbang beban, proxy terbalik, cache HTTP, dan proxy surat. Meskipun Nginx cukup baru dibandingkan dengan server web lain, popularitasnya meningkat karena kinerjanya yang tinggi. Dengan konfigurasi Nginx default, Anda mungkin mendapatkan kinerja yang cepat, tetapi kami dapat meningkatkan kinerja Nginx yang terbaik dengan mengubah beberapa konfigurasi.

Pada artikel ini, Anda akan mengetahui 8 cara terbaik yang berbeda untuk meningkatkan Nginx untuk kinerja yang lebih baik. Untuk mendemonstrasikan contoh dalam artikel ini saya telah menginstal Nginx pada sistem Ubuntu 20.04 LTS.

Ubah Proses Pekerja

Semua permintaan server web di Nginx diproses oleh proses pekerja. Dalam proses pekerja Nginx adalah arsitek sebagai beberapa proses pekerja untuk memproses permintaan dan satu proses master bertanggung jawab untuk mengelola semua proses pekerja serta menganalisis konfigurasi. Dalam konfigurasi default Nginx, parameter proses pekerja diatur ke otomatis yang memunculkan proses pekerja sesuai dengan inti CPU yang tersedia. Seperti yang direkomendasikan oleh dokumen resmi Nginx, ini adalah cara terbaik untuk menjaga proses pekerja sesuai dengan inti CPU yang tersedia sehingga parameter otomatis direkomendasikan. Jika Anda ingin tahu tentang berapa banyak inti yang dimiliki prosesor Anda, jalankan perintah berikut.

$ grep processor /proc/cpuinfo | wc -l

Anda dapat mengubah nilai default proses pekerja dari file konfigurasi Nginx yang terletak di /etc/nginx/nginx.conf. Jika server Anda mengalami lalu lintas yang lebih tinggi dan Anda perlu menambahkan lebih banyak proses pekerja, sebaiknya tingkatkan server ke lebih banyak prosesor inti.

Meningkatkan Batas Koneksi Pekerja

Koneksi pekerja adalah jumlah total koneksi simultan yang dapat dikelola oleh setiap proses pekerja yang tersedia. Secara default, proses pekerja dapat mengelola 512 koneksi sekaligus. Sebelum mengubah nilai koneksi pekerja, Anda harus memeriksa sistem koneksi maksimal untuk mengizinkan penggunaan perintah berikut untuk memperbarui konfigurasi koneksi yang sesuai.

$ ulimit -n

Menerapkan Kompresi Konten

Untuk kompresi konten web, Nginx menggunakan gzip untuk meningkatkan waktu pengiriman konten dan mengurangi penggunaan bandwidth jaringan. Dalam konfigurasi, Anda dapat menemukan konfigurasi gzip dalam status komentar tetapi Anda dapat menghapus komentar dan memodifikasi gzip sesuai dengan kebutuhan Anda. Karena proses kompresi gzip menggunakan sumber daya sistem jika Anda memiliki sumber daya terbatas, ubah konfigurasi yang sesuai dengannya seperti mengompresi hanya jenis file tertentu, tingkat kompresi, dll.

Menyimpan Konten Statis

Dalam perkembangan web modern ini, sebagian besar konten disajikan secara statis ke browser atau klien sehingga caching file statis akan memuat konten lebih cepat. Ini juga akan mengurangi permintaan koneksi ke Nginx saat konten dimuat dari cache. Untuk memulai proses caching, tambahkan direktif berikut ke file konfigurasi virtual host Nginx Anda.

location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {expires 30d;}

Arahan di atas menyimpan file sumber daya selama 30 hari. Anda dapat mengatur tanggal kadaluwarsa cache sesuai kebutuhan Anda.

Buffering

Buffering dapat membuat komunikasi antara klien dan server lebih efisien karena memegang sebagian dari respon sampai buffer terisi. Jika responsnya terlalu tinggi daripada ukuran buffer sebenarnya, Nginx akan menulis respons ke disk yang dapat menyebabkan masalah kinerja. Anda dapat memperbarui arahan berikut untuk menyesuaikan ukuran buffer sesuai dengan kebutuhan Anda.

Klien_body_buffer_size :Ini menentukan ukuran buffer sebenarnya yang digunakan untuk menyimpan data respons klien.

Client_header_buffer_size :Ini mengatur ukuran header klien. Biasanya menyetel nilai ke 1k sudah cukup baik.

Client_max_body_size :Ini membatasi respons tubuh maksimal yang diizinkan untuk klien. Jika ukuran tubuh melebihi nilainya, Nginx akan menampilkan kesalahan dengan “Request Entity Too Large”.

Untuk menyesuaikan ukuran buffering, tambahkan direktif berikut di dalam bagian http.

http {
…
client_body_buffer_size 80k;
client_max_body_size 9m;
client_header_buffer_size 1k;
...
}

Akses Buffer Log

Logging adalah salah satu peran penting dalam men-debug masalah dan mengaudit. Karena logging menyimpan setiap data permintaan yang memengaruhi siklus I/O dan CPU yang mengakibatkan masalah kinerja. Anda dapat mengurangi dampak semacam ini dengan mengaktifkan buffering ke log. Setelah ukuran buffer mencapai batasnya, Nginx menulis konten buffer ke log. Anda dapat mengaktifkan buffering dengan menambahkan parameter buffer dengan nilai ukuran ke direktif access log.

access_log /var/log/nginx/access.log main buffer=16k;
Code language: JavaScript (javascript)

Atau Anda dapat menonaktifkan log akses (jika tidak diperlukan) dengan cara berikut.

access_log off;

Membatasi Nilai Batas Waktu

Membatasi nilai batas waktu akan meningkatkan kinerja Nginx. Nginx akan menunggu permintaan body dan header klien untuk jangka waktu tertentu. Jika mereka tidak menerima data respons tepat waktu, Nginx memicu batas waktu untuk masing-masing klien. Nilai time-out dapat diatur dengan arahan berikut. Untuk mengatur durasi timeout, copy-paste arahan yang diberikan di bawah ini dalam bagian http.

client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 13;
send_timeout 10;

Client body dan header timeout adalah jangka waktu Nginx untuk membaca header dan body dari request client. Jika tidak selesai tepat waktu, permintaan dihentikan dengan kesalahan waktu habis. Keepalive_timeout adalah durasi setelah nginx close koneksi klien keep-alive connection tetap terbuka. Send_timeout adalah durasi klien harus menerima respons yang dikirim oleh Nginx.

Buka Cache File

Di Linux hampir semuanya adalah file, ketika open_file_cache digunakan, deskriptor file dan semua file yang sering diakses di-cache ke server. Terutama saat menyajikan file Html statis menggunakan cache file terbuka akan meningkatkan kinerja Nginx saat membuka dan menyimpan cache dalam memori untuk interval tertentu. Letakkan direktif open_file_cache berikut di bagian http untuk memulai caching.

http {
...
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

Kesimpulan

Ini adalah 8 cara untuk meningkatkan kinerja Nginx dengan modifikasi sederhana dari file konfigurasi Nginx. Saya harap membaca artikel ini akan membantu Anda memulai peningkatan kinerja Nginx.


Linux
  1. Cara Menggunakan Paket Pengoptimal Gambar untuk WP-CLI

  2. Bagaimana cara menentukan file kunci untuk sshfs?

  3. Bagaimana cara menentukan nama host untuk wadah yang sedang berjalan?

  1. Cara Membuat Sudo Mengingat Kata Sandi Lebih Lama

  2. Linux:Bagaimana Menemukan Driver Perangkat yang Digunakan Untuk Perangkat?

  3. Bagaimana Menemukan Nilai Yang Valid Untuk Istilah Yang Digunakan Di Tmux?

  1. Bagaimana Cara Menemukan Aplikasi Untuk Tipe Mime Di Linux?

  2. Bagaimana Kali menangani Akhir Kehidupan Python 2 yang akan datang

  3. Bagaimana cara membuat sudo meminta kata sandi root?