Contoh File Konfigurasi Nginx di VPS atau Dedicated Server untuk CMS WordPress

[WARNING]

Setelah melakukan test di server project, untuk settingan nginx, sebaiknya menggunakan contoh setting di sini karena lebih sederhana karena hanya menggunakan 2 file (satu file utama dan satu untuk virtual domain) tanpa harus include file htaccess. Untuk settingan file utama dari nginx, bisa tetap menggunakan settingan di bawah ini, atau bisa menggunakan contoh setting di sini yang sudah mengoptimalkan GZip compression.

Selain itu settingan tersebut sedikit meningkatkan performa dari server.
———————————————————
Di bawah ini adalah contoh file konfigurasi Nginx /etc/nginx/nginx.conf dengan speech server OpenVZ VPS, Processor 4 Core dengan RAM 1024MB.

user  nobody;
worker_processes 4;

pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    server_tokens off;

    access_log off;

    error_log /dev/null crit;

    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     on;

    keepalive_timeout 65;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    gzip_comp_level 1;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.conf;

}

Dan satu file lagi adalah file /etc/nginx/sites-enabled/centostutorial.site.conf yang berisi file konfigurasi untuk domain dan hosting centostutorial.site

server {
        ## Redirect non WWW to WWW
        server_name centostutorial.site;
        rewrite ^(.*) https://centostutorial.site$1 permanent;
}

server {
        listen       80;
        server_name  centostutorial.site;

        # Root Folder
        location / {
                root   /var/www/html/centostutorial.site;
                index  index.php;

                #include WordPress Rewrite
                include /var/www/htaccess;

                # Access to PHP Files
                location ~ \.php$ {
                        fastcgi_pass   127.0.0.1:9000;
                        fastcgi_index  index.php;
                        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        include        fastcgi_params;
                }

                # Access to static files
                location ~* \.(jpg|jpeg|gif|png|css|ico|js|xml)$ {
                        access_log        off;
                        log_not_found     off;
                        expires           365d;
                }

                # Access to Hidden files
                location ~ /\. {
                        deny  all;
                        access_log off;
                        log_not_found off;
                }
        }
}

Sedangkan untuk mode rewrite dari WordPress pada /var/www/htaccess (Yang di inclukan pada file /etc/nginx/sites-enabled/centostutorial.site.conf di atas) bisa menggunakan kode di bawah ini:

# WordPress pretty URLs:
  if (-f $request_filename) {
  break;
  }
  if (-d $request_filename) {
  break;
  }
  rewrite ^(.+)$ /index.php?q=$1 last;

Catatan:
Konfigurasi ini bukanlah konfigurasi maksimal atau paling optimal (Karena keterbatasan ilmu yang penulis miliki), namun sudah cukup untuk menangani beban server yang digunakan untuk website ini.

Semoga bermanfaat!