4

Optimasi Konfigurasi Web Server Nginx

Nginx

Nginx adalah aplikasi Web server yang cepat dan tidak terlalu berat, tentu saja Nginx menjadi lawan berat apache 2, yang masih menjadi pilihan utama di beberapa pemakai web server. Nginx sama seperti aplikasi server lain nya yang membutuhkan sebuah konfigurasi yang tepat agar menjadi optimal.

Worker Processes and Work Connections

Yang pertama kita perlu optimasi adalah worker processes dan worker connections. Sebelum kita mengoptimasi settingan nginx lebih lanjut, kita perlu mengerti setiap bagian konfigurasi nginx. Worker_processes penting untuk nginx, ibarat nya adalah “tulang punggung” dari nginx. Worker_processes adalah proses per core dari Prosesor yang kita punya. Jadi bisa kita samakan dengan jumlah core yang kita punya. Kita cek dahulu berapa core yang kita punya dengan cara :

grep processor /proc/cpuinfo | wc –l

kita ambil contoh ternyata yang muncul adalah 4. Berarti prosesor kita mempunyai 4 core. Atau disebut quad core.
Worker_connections adalah jumlah koneksi maksimal klien untuk setiap core worker_processes. Default value nya adalah 768; bisa kita ubah sesuai kebutuhan. Kita bisa cek limitasi core dengan perintah :

Ulimit –n

Mungkin dalam contoh kita ambil saja worker_connections nya 1024. Jadi konfigurasi nya :

nano /etc/nginx/nginx.conf
worker_processes 4;
worker_connections 1024;

Jadi, setiap core prosesor bisa melayani 1024 client/second.

Max_clients = worker_processes * worker_connections
4 * 1024 = 4096 maximal klien yang bisa mengakses nginx.

Buffers

Lain nya yang cukup penting yang bisa kita optimasi adalah buffer size. Jika buffer size terlalu rendah / kecil, nginx akan membuat file temporari yang menyebabkan disk/harddisk akan menulis dan membaca file tersebut secara terus menerus.

client_body_buffer_size: ini untuk menangani buffer size klien, berarti POST action yang akan dikirim ke nginx. POST action biasanya berupa form kiriman yang akan masuk database ( menggunakan PHP )

client_header_buffer_size: tidak beda jauh seperti sebelumnya, hanya saja ini untuk header size klien. Untuk ukuran, 1k layak untuk header buffer size.

client_max_body_size: maximum data yang diperbolehkan nginx kepada klient yang merequest. Jika nilai maksimum melebih batas, nginx akan mengirim pesan kepada klien berupa : 413 error or Request Entity Too Large.
large_client_header_buffers: The maximum number and size of buffers for large client headers.

client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 2 1k;

Gzip Compression

Gzip dapat mengurangi beban network transfer nginx. Tapi bagaimanapun, anda harus pandai mengkonfigurasi Gzip ini. Karna jika gzip_comp_level terlalu tinggi maka akan menambah beban kerja CPU sever.

gzip             on;
gzip_comp_level  2;
gzip_min_length  1000;
gzip_proxied     expired no-cache no-store private auth;
gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

Static File Caching

Konfigurasi ini untuk caching sebuah file dengan nginx. Dan juga bisa di setting berapa lama file cache itu berada di server ( expire ). Sebagai contoh di bawah ini nginx akan caching file ber-ekstensi image.

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

Anda juga bisa menambah ekstensi yang lain selain ekstensi file diatas.

Logging

Nginx akan mencatat setiap request yang masuk. Jika anda ingin mematikan fitur log nginx. Anda bisa edit access_log directive :

access_log off

Simpan dan keluar dari text editor, kemudian jalankan perintah :

sudo service nginx restart

Puspo

gue orangnya santai. gasuka keributan. mending nyari duit daripada nyari ribut :)) Co-founder dari cubnetwork.

4 Comments

  1. saya mau tanya,

    di salah satu tutorial dikatakan mengedit nginx.conf
    tapi saya ngak tahu di mana letaknya. bisa dibantu ya dimana letak file itu?

    • menurut tutorialnya file nginx.conf-nya ada didalam direktori /etc/nginx/ mas. :)

    • mungkin ada kesalahan konfigurasi file nginx nya mas, bisa dibantu errornya apa?

Leave a Reply to ziuma Cancel reply