fbpx
30.8 C
Jakarta
Selasa, 14 Mei 2024

10 Tips Untuk Meningkatkan Kinerja Nginx

Nginx adalah salah satu server web yang banyak digunakan dan merupakan alternatif dari Apache 2.
Nginx populer untuk menangani lalu lintas yang padat dan untuk stabilitasnya, Sangat ramah pengguna dan mudah dikonfigurasi.

Pada artikel ini kita akan melihat bagaimana kita dapat mengoptimalkan Nginx untuk memberikan kinerja terbaiknya.
Berikut adalah beberapa tip dan trik berguna yang dapat Anda terapkan pada host Nginx Anda untuk memuat situs Anda lebih cepat.

Cache Resources

Setiap situs web memiliki halaman, gambar, dan hal-hal lain yang sebagian besar tetap tidak berubah selama sesi pengunjung di situs.
Hampir 30 persen data di halaman web modern bersifat statis, konten semacam itu harus disimpan dalam cache untuk meningkatkan kinerja Nginx.
Caching akan memberi Anda dua keuntungan.

1) Ini akan memuat konten lebih cepat karena data statis pada halaman akan di-cache ke browser atau ke server caching terdekat yang akan mengurangi waktu buka halaman karena permintaan akan disajikan tanpa keterlibatan Nginx.

2) Manfaat kedua adalah lebih sedikit permintaan koneksi pada server Nginx karena data akan dimuat oleh server cache sehingga pada akhirnya akan mengurangi beban di server Anda. Anda dapat mengatur direktif berikut di blok Nginx untuk mengaktifkan caching.

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

Jika konten tetap tidak berubah, maka parameter ini akan men-cache-nya selama 365 hari.

Penyesuaian Proses Pekerja

Server sekarang multi-threaded dan multi proses, Nginx memiliki kemampuan untuk memenuhi teknik modern ini.
Setting default tidak mengizinkan Nginx menangani banyak beban kerja, tetapi Anda dapat membuat perubahan tertentu di file konfigurasi untuk membuatnya berfungsi sebagai server web multi-threaded.
Ada parameter “worker_processes” di nginx yang akan menggunakan beberapa prosesor yang tersedia di sistem.

Buka file /etc/nginx/nginx.conf dan ubah “worker_processes auto” parameter ke:

worker_processes 12;

Peningkatan Worker Connections

Worker Connections terkait dengan proses Worker, yaitu berapa banyak koneksi yang dapat dipertahankan oleh setiap proses Worker.
Jika Anda telah mengaktifkan 1 proses Worker dan Anda telah mengatur nilai ini menjadi 10 maka Nginx akan dapat menangani 10 koneksi. Anda dapat mengubah nilainya tergantung pada intensitas lalu lintas di situs web Anda. Semua koneksi yang melebihi nilai itu akan dimasukkan ke dalam antrean atau waktu habis, jadi parameter ini harus disetting dengan mempertimbangkan semua aspek.

Baca Juga:  Instalasi Virtualmin dengan Nginx dan MariaDB di Debian 11

Seperti yang ditunjukkan pada tangkapan layar berikut, kami telah menetapkan 1024 koneksi untuk setiap proses.

event {
worker connections 1024;
}

Optimasi Timeout Values

Faktor timeout dapat meningkatkan performa web server Anda, Ada beberapa parameter timeout yang dapat diatur dan setiap parameter memiliki fungsi masing-masing.
Client_body_timeout dan client_header_timeout adalah parameter yang menunggu header dan isi permintaan klien dan jika tidak diterima dalam nilai waktu ini, koneksi klien akan habis waktunya.
Keepalive_timeout adalah waktu polling di mana server mengumpulkan koneksi klien setelah waktu tertentu untuk memeriksa ketersediaannya dan jika tidak ada respons yang diterima dalam waktu yang ditentukan, waktunya habis. Anda dapat menambahkan parameter ini ke konfigurasi Nginx.

client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;

Compression

Teknik kompresi Gzip telah menjadi populer di server web karena transfer data yang dikompresi jauh lebih cepat dibandingkan dengan yang normal.
Parameter berikut perlu disetel dalam konfigurasi nginx untuk mengaktifkan dan menggunakan kompresi Gzip untuk konten web.

gzip on
gzip_comp_level 2;
gzip_min_length 1000;
gzip_types text/plain application/x-javascript text/xml text/css application/xml;

Pendekatan terbaik adalah mengaktifkannya untuk file besar karena bisa juga menghabiskan sumber daya CPU.

Buffers

Buffer size tweaking merupakan tugas penting karena pengaturan nilai rendah untuk parameter ini akan membuat Nginx mulai menulis data ke file sementara; yang akan mengakibatkan peningkatan I / O disk. Kita bahas semua parameter tersebut satu per satu.

1. Client_body_buffer_size: Ini adalah ukuran buffer dari permintaan posting yang diposting pengunjung di situs web. Pilihan yang bagus adalah sekitar 128k.

2. Client_max_body_size: Parameter ini menetapkan ukuran buffer maksimum. Permintaan yang besar terkadang berbahaya, jadi pengaturan parameter ini akan menampilkan “Entitas Permintaan Terlalu Besar” untuk klien.

3. Client_header_buffer_size: Opsi ini untuk membatasi ukuran header dari permintaan klien. Biasanya 1000 (1k) adalah pilihan yang sangat bagus.

Baca Juga:  Google membuat AlloyDB untuk PostgreSQL Baru tersedia di 16 wilayah

Anda harus menambahkan parameter yang disebutkan di atas di /etc/nginx/nginx.conf

client_body_buffer_size 128k;
client_max_body_size 10m;
client_header_buffer_size 1k;

Nonaktifkan Log Akses

Log Nginx memiliki terlalu banyak informasi yang masuk karena setiap tindakan dicatat.
Untuk meningkatkan kinerjanya Anda dapat menonaktifkan log ini dan pada akhirnya akan menghemat ruang disk juga.
File konfigurasi Nginx harus berisi parameter berikut jika Anda ingin menonaktifkan log akses.

access_log off;

TCP_nodelay dan TCP_nopush

Parameter ini penting pada level jaringan karena setiap paket dianalisis pada level inti, berikut beberapa detail tentang parameter ini.

1. TCP_nodelay: Parameter ini memungkinkan Anda untuk mencegah sistem dari buffering data-send dan semua data akan dikirim dalam semburan kecil secara real time. Anda dapat mengatur parameter ini dengan menambahkan baris berikut

tcp_nodelay on;

2. TCP_nopush: Parameter ini akan memungkinkan server Anda mengirim respons HTTP dalam satu paket alih-alih mengirimkannya dalam bingkai. Ini akan mengoptimalkan secara keseluruhan dan meminimalkan konsumsi bandwidth yang akan menghasilkan peningkatan waktu pemuatan situs web.

Open_file Cache

Pada sistem operasi berbasis Linux semuanya dilakukan dengan menggunakan file.
Parameter Open_file_cache memungkinkan server untuk menyimpan cache deskriptor file dan semua file yang sering diakses.
Anda dapat mengaktifkan tweak ini dengan menyesuaikan parameter berikut.

open_file_cache max=5000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

Antrian Koneksi (Connection Queue)

Anda dapat membuat beberapa perubahan kernel untuk pengoptimalan Nginx.
Parameter “net.core.somaxconn” dan “net.ipv4.tcp_max_tw_buckets” memungkinkan Anda untuk mengubah panjang koneksi yang perlu diterima oleh Nginx.
Jika Anda menetapkan parameter ini terlalu tinggi, parameter tersebut akan dimasukkan ke dalam sistem operasi sebelum diserahkan ke Nginx.
Berikut adalah contoh konfigurasi yang dilakukan di /etc/sysctl.conf

net.core.somaxconn = 65536
net.ipv4.tcp_max_tw_buckets = 1440000

Kesimpulan

Nginx adalah server web yang sangat kuat dan dapat melayani situs web dengan besaran dan lalu lintas apa pun.
Namun, selalu disarankan untuk menyesuaikannya dengan kebutuhan Anda sehingga situs web Anda harus merespons dengan tepat waktu.
Perubahan yang disebutkan di atas akan membuat server web Anda mampu menangani situs lalu lintas ukuran sedang hingga tinggi.

Nginx adalah salah satu server web yang banyak digunakan dan merupakan alternatif dari Apache 2.
Nginx populer untuk menangani lalu lintas yang padat dan untuk stabilitasnya, Sangat ramah pengguna dan mudah dikonfigurasi.

Pada artikel ini kita akan melihat bagaimana kita dapat mengoptimalkan Nginx untuk memberikan kinerja terbaiknya.
Berikut adalah beberapa tip dan trik berguna yang dapat Anda terapkan pada host Nginx Anda untuk memuat situs Anda lebih cepat.

Cache Resources

Setiap situs web memiliki halaman, gambar, dan hal-hal lain yang sebagian besar tetap tidak berubah selama sesi pengunjung di situs.
Hampir 30 persen data di halaman web modern bersifat statis, konten semacam itu harus disimpan dalam cache untuk meningkatkan kinerja Nginx.
Caching akan memberi Anda dua keuntungan.

1) Ini akan memuat konten lebih cepat karena data statis pada halaman akan di-cache ke browser atau ke server caching terdekat yang akan mengurangi waktu buka halaman karena permintaan akan disajikan tanpa keterlibatan Nginx.

2) Manfaat kedua adalah lebih sedikit permintaan koneksi pada server Nginx karena data akan dimuat oleh server cache sehingga pada akhirnya akan mengurangi beban di server Anda. Anda dapat mengatur direktif berikut di blok Nginx untuk mengaktifkan caching.

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

Jika konten tetap tidak berubah, maka parameter ini akan men-cache-nya selama 365 hari.

Penyesuaian Proses Pekerja

Server sekarang multi-threaded dan multi proses, Nginx memiliki kemampuan untuk memenuhi teknik modern ini.
Setting default tidak mengizinkan Nginx menangani banyak beban kerja, tetapi Anda dapat membuat perubahan tertentu di file konfigurasi untuk membuatnya berfungsi sebagai server web multi-threaded.
Ada parameter “worker_processes” di nginx yang akan menggunakan beberapa prosesor yang tersedia di sistem.

Buka file /etc/nginx/nginx.conf dan ubah “worker_processes auto” parameter ke:

worker_processes 12;

Peningkatan Worker Connections

Worker Connections terkait dengan proses Worker, yaitu berapa banyak koneksi yang dapat dipertahankan oleh setiap proses Worker.
Jika Anda telah mengaktifkan 1 proses Worker dan Anda telah mengatur nilai ini menjadi 10 maka Nginx akan dapat menangani 10 koneksi. Anda dapat mengubah nilainya tergantung pada intensitas lalu lintas di situs web Anda. Semua koneksi yang melebihi nilai itu akan dimasukkan ke dalam antrean atau waktu habis, jadi parameter ini harus disetting dengan mempertimbangkan semua aspek.

Baca Juga:  Dukungan Google ke Apple dengan enkripsi end-to-end untuk Gmail

Seperti yang ditunjukkan pada tangkapan layar berikut, kami telah menetapkan 1024 koneksi untuk setiap proses.

event {
worker connections 1024;
}

Optimasi Timeout Values

Faktor timeout dapat meningkatkan performa web server Anda, Ada beberapa parameter timeout yang dapat diatur dan setiap parameter memiliki fungsi masing-masing.
Client_body_timeout dan client_header_timeout adalah parameter yang menunggu header dan isi permintaan klien dan jika tidak diterima dalam nilai waktu ini, koneksi klien akan habis waktunya.
Keepalive_timeout adalah waktu polling di mana server mengumpulkan koneksi klien setelah waktu tertentu untuk memeriksa ketersediaannya dan jika tidak ada respons yang diterima dalam waktu yang ditentukan, waktunya habis. Anda dapat menambahkan parameter ini ke konfigurasi Nginx.

client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;

Compression

Teknik kompresi Gzip telah menjadi populer di server web karena transfer data yang dikompresi jauh lebih cepat dibandingkan dengan yang normal.
Parameter berikut perlu disetel dalam konfigurasi nginx untuk mengaktifkan dan menggunakan kompresi Gzip untuk konten web.

gzip on
gzip_comp_level 2;
gzip_min_length 1000;
gzip_types text/plain application/x-javascript text/xml text/css application/xml;

Pendekatan terbaik adalah mengaktifkannya untuk file besar karena bisa juga menghabiskan sumber daya CPU.

Buffers

Buffer size tweaking merupakan tugas penting karena pengaturan nilai rendah untuk parameter ini akan membuat Nginx mulai menulis data ke file sementara; yang akan mengakibatkan peningkatan I / O disk. Kita bahas semua parameter tersebut satu per satu.

1. Client_body_buffer_size: Ini adalah ukuran buffer dari permintaan posting yang diposting pengunjung di situs web. Pilihan yang bagus adalah sekitar 128k.

2. Client_max_body_size: Parameter ini menetapkan ukuran buffer maksimum. Permintaan yang besar terkadang berbahaya, jadi pengaturan parameter ini akan menampilkan “Entitas Permintaan Terlalu Besar” untuk klien.

3. Client_header_buffer_size: Opsi ini untuk membatasi ukuran header dari permintaan klien. Biasanya 1000 (1k) adalah pilihan yang sangat bagus.

Baca Juga:  Menjalankan NGINX dan NGINX Plus di Docker

Anda harus menambahkan parameter yang disebutkan di atas di /etc/nginx/nginx.conf

client_body_buffer_size 128k;
client_max_body_size 10m;
client_header_buffer_size 1k;

Nonaktifkan Log Akses

Log Nginx memiliki terlalu banyak informasi yang masuk karena setiap tindakan dicatat.
Untuk meningkatkan kinerjanya Anda dapat menonaktifkan log ini dan pada akhirnya akan menghemat ruang disk juga.
File konfigurasi Nginx harus berisi parameter berikut jika Anda ingin menonaktifkan log akses.

access_log off;

TCP_nodelay dan TCP_nopush

Parameter ini penting pada level jaringan karena setiap paket dianalisis pada level inti, berikut beberapa detail tentang parameter ini.

1. TCP_nodelay: Parameter ini memungkinkan Anda untuk mencegah sistem dari buffering data-send dan semua data akan dikirim dalam semburan kecil secara real time. Anda dapat mengatur parameter ini dengan menambahkan baris berikut

tcp_nodelay on;

2. TCP_nopush: Parameter ini akan memungkinkan server Anda mengirim respons HTTP dalam satu paket alih-alih mengirimkannya dalam bingkai. Ini akan mengoptimalkan secara keseluruhan dan meminimalkan konsumsi bandwidth yang akan menghasilkan peningkatan waktu pemuatan situs web.

Open_file Cache

Pada sistem operasi berbasis Linux semuanya dilakukan dengan menggunakan file.
Parameter Open_file_cache memungkinkan server untuk menyimpan cache deskriptor file dan semua file yang sering diakses.
Anda dapat mengaktifkan tweak ini dengan menyesuaikan parameter berikut.

open_file_cache max=5000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

Antrian Koneksi (Connection Queue)

Anda dapat membuat beberapa perubahan kernel untuk pengoptimalan Nginx.
Parameter “net.core.somaxconn” dan “net.ipv4.tcp_max_tw_buckets” memungkinkan Anda untuk mengubah panjang koneksi yang perlu diterima oleh Nginx.
Jika Anda menetapkan parameter ini terlalu tinggi, parameter tersebut akan dimasukkan ke dalam sistem operasi sebelum diserahkan ke Nginx.
Berikut adalah contoh konfigurasi yang dilakukan di /etc/sysctl.conf

net.core.somaxconn = 65536
net.ipv4.tcp_max_tw_buckets = 1440000

Kesimpulan

Nginx adalah server web yang sangat kuat dan dapat melayani situs web dengan besaran dan lalu lintas apa pun.
Namun, selalu disarankan untuk menyesuaikannya dengan kebutuhan Anda sehingga situs web Anda harus merespons dengan tepat waktu.
Perubahan yang disebutkan di atas akan membuat server web Anda mampu menangani situs lalu lintas ukuran sedang hingga tinggi.

Untuk mendapatkan Berita & Review menarik Saksenengku Network
Google News

Artikel Terkait

Populer

Artikel Terbaru