Mengoptimalkan Kinerja NGINX pada Server Linux

calendar_today
schedule 2 min read

Mengoptimalkan Kinerja NGINX pada Server Linux

NGINX udah jadi salah satu web server favorit buat banyak orang karena kecepatan dan efisiensinya. Tapi, biar makin ngebut, ada beberapa trik yang bisa lo lakukan buat optimalkan kinerja NGINX di server Linux. Yuk, simak tips-tipsnya!

1. Tweak Konfigurasi NGINX

Pertama-tama, lo perlu nge-tweak konfigurasi NGINX biar lebih optimal. Buka file konfigurasi NGINX (biasanya di /etc/nginx/nginx.conf) dan lakukan beberapa perubahan:

  • Worker Processes: Atur jumlah worker processes sesuai dengan jumlah core CPU yang lo punya. Misalnya, kalo server lo punya 4 core, set worker_processes jadi 4.

    code
    worker_processes 4;
  • Worker Connections: Tingkatkan jumlah koneksi yang bisa ditangani oleh setiap worker. Defaultnya biasanya 1024, tapi lo bisa naikkan jadi 4096 atau lebih tergantung kebutuhan.

    code
    events {
        worker_connections 4096;
    }
  • Multi Accept: Aktifkan multi_accept biar setiap worker bisa menerima banyak koneksi sekaligus.

    code
    events {
        multi_accept on;
    }

2. Aktifkan Gzip Compression

Gzip compression bisa mengurangi ukuran data yang dikirim dari server ke client, sehingga mempercepat loading halaman. Aktifkan Gzip di konfigurasi NGINX:

code
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1000;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;

3. Cache Static Content

Caching static content seperti gambar, CSS, dan JavaScript bisa mengurangi beban server dan mempercepat akses. Tambahkan konfigurasi berikut di blok server:

code
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
}

4. Tuning Buffer Size

Atur buffer size biar NGINX bisa menangani request dengan lebih efisien. Tambahkan konfigurasi berikut di blok http:

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

5. Aktifkan Keep-Alive

Keep-Alive memungkinkan koneksi tetap terbuka untuk beberapa request, sehingga mengurangi overhead koneksi baru. Aktifkan dengan menambahkan:

code
keepalive_timeout 65;
keepalive_requests 100;

6. Gunakan HTTP/2

HTTP/2 lebih efisien dibanding HTTP/1.1 karena mendukung multiplexing dan kompresi header. Aktifkan HTTP/2 di blok server:

code
listen 443 ssl http2;

7. Optimasi SSL/TLS

Kalo lo pake SSL/TLS, optimasi konfigurasinya biar nggak ngeberatkin server:

code
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

8. Monitor dan Tweak Berdasarkan Kebutuhan

Terakhir, jangan lupa buat monitor kinerja NGINX pake tools seperti htop, nginx -t, atau nginx -V. Sesuaikan konfigurasi berdasarkan kebutuhan dan beban server lo.

Dengan ngejalanin tips-tips di atas, NGINX di server Linux lo bakal lebih ngebut dan efisien. Selamat mencoba!

A

Written by Ariful

Full-stack engineer obsessed with web performance.