Memahami Nginx

EGPHP memakai Nginx (dibaca "engine-x") sebagai server webnya. Nginx dikenal karena kinerjanya yang tinggi, stabil, dan hemat sumber daya. Berbeda dengan Apache, Nginx tidak memakai berkas .htaccess.

Tanpa .htaccess: Nginx tidak mendukung berkas .htaccess. Fungsi serupa dicapai lewat berkas konfigurasi Nginx.

Membuka Pengaturan Nginx

  1. Masuk ke EGPNL
  2. Buka Domain
  3. Klik domain Anda
  4. Pilih Konfigurasi Nginx atau Pengaturan Lanjutan

Konfigurasi Nginx yang Umum

Mengalihkan HTTP ke HTTPS

Paksa semua trafik memakai HTTPS:

if ($scheme != "https") {
    return 301 https://$host$request_uri;
}

Mengalihkan www ke tanpa-www

if ($host ~* ^www\.(.*)) {
    return 301 https://$1$request_uri;
}

Mengalihkan tanpa-www ke www

if ($host !~* ^www\.) {
    return 301 https://www.$host$request_uri;
}

Permalink Rapi WordPress

Diperlukan untuk alamat WordPress yang ramah SEO:

location / {
    try_files $uri $uri/ /index.php?$args;
}
Pengguna WordPress: EGPNL mengatur permalink WordPress secara otomatis saat Anda menambahkan situs WordPress. Tak perlu konfigurasi manual!

Header Keamanan

Tambahkan header keamanan untuk melindungi situs Anda:

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Konfigurasi Cache

Aktifkan cache peramban untuk berkas statis:

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

Kompresi Gzip

Aktifkan kompresi gzip agar halaman lebih cepat dimuat (biasanya sudah aktif secara bawaan):

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_min_length 1000;

Halaman Kesalahan Khusus

Tetapkan halaman kesalahan 404 dan 500 sendiri:

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;

Memblokir Akses

Memblokir IP tertentu

deny 123.45.67.89;
deny 98.76.54.0/24;

Memblokir berkas tertentu

location ~ /\.(htaccess|htpasswd|git|svn) {
    deny all;
}

Melindungi direktori dengan kata sandi

location /admin {
    auth_basic "Restricted";
    auth_basic_user_file /path/to/.htpasswd;
}

Penulisan Ulang URL

Tulis ulang alamat tanpa mengalihkan:

# Rewrite old URL to new URL internally
rewrite ^/old-page$ /new-page last;

# Redirect old URL to new URL (301)
rewrite ^/old-url$ /new-url permanent;

Konfigurasi PHP

Sesuaikan pengaturan PHP untuk domain Anda:

location ~ \.php$ {
    fastcgi_param PHP_VALUE "
        upload_max_filesize=64M
        post_max_size=64M
        max_execution_time=300
    ";
}
Hati-hati: konfigurasi Nginx yang keliru bisa membuat situs Anda tak dapat diakses. Selalu cadangkan konfigurasi Anda sebelum mengubahnya.

Menguji Konfigurasi

Setelah melakukan perubahan:

  1. EGPNL akan memvalidasi konfigurasi Anda secara otomatis
  2. Bila ada kesalahan, Anda melihat pesan peringatan
  3. Perbaiki kesalahannya sebelum menyimpan
  4. Nginx dimuat ulang otomatis setelah penyimpanan berhasil