Menjalankan WordPress Multisitus dari Apache (cPanel) Beralih ke Nginx

8 minutes 704 4

Jadi ceritanya kontrak hosting saya di MedanWeb sudah akan habis. Saya tidak ingin memperpanjang kontrak saya, padahal saya sudah menjadi pelanggan setia selama kurang lebih 5 tahun.

Saya menjadi pelanggan sejak perusahaan itu bernama Dabooh, terus beralih jadi Xinergix, dan akhirnya jadi MedanWeb. Alasannya adalah saat itu harganya yang murah.

Secara performa layanan perusahaan ini memuaskan. Saya bahkan hampir tidak pernah pernah komplain. Respon layanan pelanggannya juga cepat.

Alasan saya kenapa tidak ingin memperpanjang kontrak saya di MedanWeb adalah karena saya mengenal DigitalOcean. DigitalOcean menawarkan self-managed hosting (VPS Cloud) yang berbasis SSD sehingga performanya sangat cepat (kekuatan SSD, solid-state disk) dan mudah digunakan (teknologi cloud).

Dengan harga yang cukup murah untuk ukuran VPS (US$ 5 per bulan), DigitalOcean menjadi pilihan hosting VPS yang layak diperhitungkan.

Jika dulu di MedanWeb saya mendapatkan akses cPanel untuk mengatur hosting saya karena saya pelanggan shared-hosting, di DigitalOcean saya cuma mendapat sistem operasi dasar. Namun bagi saya, ini menyenangkan karena saya bisa bebas melakukan apa pun yang tidak bisa saya lakukan saat berada di layanan shared-hosting.

Kenapa Nginx dan WordPress Multisitus?

Saya sudah lama tidak mengutak-atik Apache. Dalam pekerjaan, saya sering menggunakan Nginx. Saya pun berencana menjalankan blog saya yang berbasis WordPress ini di Nginx karena sudah terbiasa.

Kenapa Nginx? Performa Nginx diklaim lebih cepat 50 kali lipat dari Apache. Konsumsi memori Nginx juga jauh lebih rendah.ย Apalagi mesin VPS saya cuma memiliki memori 512 MB yang di dalamnya sudah saya isi macam-macam, salah satunya blog berbasis Ghost.

Kenapa menggunakan WordPress multisitus? Pertimbangan saya adalah kemudahan melakukan perawatan dan pengawasan. Ada satu blog lagi yang numpang di tempat saya, yang jika saya buat di WordPress terpisah, akan merepotkan ketika ada pembaruan.

Kemudahan lain, saat saya ingin membuat blog baru, tak perlu melakukan instalasi WordPress lagi, tinggal klik-klik, jadi. Jika ingin menggunakan domain lain, tinggal diarahkan domain tersebut ke alamat IP blog ini.

Migrasi dan Konfigurasi

Menjalankan WordPress di Nginx rupanya membutuhkan konfigurasi yang sederhana. Yang agak ribet adalah migrasinya.

Saya melakukan migrasi dengan mem-backup database MySQL dan direktori root WordPress hosting lama saya, lalu memindah dan mengunggah berkas ini ke hosting baru. Proses ini sendiri saya lakukan jauh-jauh hari karena besarnya ukuran berkas.

Setelah semua berkas dan database terpindah, saya lalu memindahkan domain ke alamat IP yang baru melalui DNS control panel lalu menunggu propagasi.

Konfigurasi Nginx saya mengikuti panduan dari rtCamp dan panduan WordPress sebagai tambahan.

Konfigurasi Nginx saya bisa dilihat di Pastebin saya seperti berikut:

server {
	#listen	80	default_server;
	server_name	_;

	access_log	/var/log/nginx/access.log;
	error_log	/var/log/nginx/error.log;

	#-- change this
	root /var/www/html/wordpress;
	index index.php index.html index.htm;

	location ~ ^/files/(.*)$ {
        	try_files /wp-content/blogs.dir/$blogid/$uri /wp-includes/ms-files.php?file=$1;
        	access_log off;
        	log_not_found off; 
        	expires max;
    	}

	location / {
		try_files $uri $uri/ /index.php?$args;
	}

	location ~ .php$ {
		try_files $uri /index.php;

		#-- using PHP-FPM socket
		fastcgi_pass unix:/var/run/php5-fpm.sock;

		#-- using CGI
		#fastcgi_pass   127.0.0.1:9000;

		fastcgi_index  index.php;
        	fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        	include        fastcgi_params;
	}
}

Konfigurasi saya sangat dasar dan minimalis. Di sini saya tidak menggunakan rules dari .htaccess. Biasanya memang rule rewrite ini yang memusingkan. Jika ada rule rewrite yang hendak digunakan, gunakan konverter htaccess ke Nginx.

Tes Performa

Setelah proses propagasi selesai, saya pun merasakan peningkatan kecepatan yang cukup signifikan saat mengakses blog ini.

Blog lama saya yang menggunakan Apache (cPanel) saya pasang di domain cpanel.matriphe.com dan blog baru yang menggunakan Nginx saya pasang di domain matriphe.com untuk keperluan pengetesan dan perbandingan.

Spesifikasi masing-masing server adalah sebagai berikut:

Informasi cpanel.matriphe.com matriphe.com
Penyedia Hosting MedanWeb DigitalOcean
Paket Hosting Gold 3 $5/mo
Tipe Hosting Shared Hosting Cloud VPS
Lokasi Server Dallas, Texas, Amerika Serikat New York, New York, Amerika Serikat
CPU Core Tidak Diketahui 1 Core
Arsitektur 64 bit 32 bit
Memori 1024 MB 512 MB
Kapasitas 1200 MB 20 GB (SSD)
Sistem Operasi Linux Ubuntu 12.04 LTS
Web Server Apache 2.4.6 Nginx 1.4.5
Versi PHP 5.3.27 5.5.9
Versi Database MySQL 5.5.35 5.5.35 Percona

Kedua server kemudian saya uji performanya. Keduanya menggunakan versi WordPress yang sama (3.8.1), tema yang sama (primasty), dan plugin aktif yang sama.

Saya menggunakan Pingdom Website Speed Test dan Google Pagespeed untuk melakukan pengukuran performa.

Berikut ini hasil pengukuran menggunakan Pingdom Website Speed Test:

Lokasi Amsterdam Dallas New York
Skor CM M CM M CM M
Peringkat 100/100 84/100 78/100 76/100 78/100 84/100
Permintaan 1 66 66 66 66 66
Waktu Buka 60,00 detik 1,67 detik 8,72 detik 1,34 detik 4,34 detik 1,15 detik
Ukuran Berkas 0 B 1,2 MB 1,2 MB 1,2 MB 1,2 MB 1,2 MB
URL URL URL URL URL URL URL

Bisa dilihat bahwa performa blog yang diperkuat oleh Nginx (M: matriphe.com) lebih baik dari Apache (CM: cpanel.matriphe.com). Bahkan saat dites dari Amsterdam, Belanda, cpanel.matriphe.com tidak dapat dibuka. Sepertinya ini lebih ke faktor jaringan.

Saya periksa yang membuat lama adalah koneksi mengambil Javascript dari Pinterest.

Saat dites menggunakan Google Pagespeed, hasilnya adalah sebagai berikut:

Skor cpanel.matriphe.com matriphe.com
Seluler 36/100 56/100
Desktop 54/100 82/100

Secara umum, performa blog tergantung ke banyak hal, terutama saat mengambil banyak resource keluar semacam Javascript dan CSS. Tapi dari waktu buka sendiri, Nginx jauh lebih cepat dan ringan bila dibandingkan dengan Apache. Saya merasakan sendiri peningkatan performa blog saya.

Blog WordPress Baru?

Jika ingin memasang WordPress baru menggunakan Nginx pada server VPS yang masih kosong, gunakan easyengine (ee) yang sangat mudah digunakan. Dengan easyengine ini tak perlu lagi melakukan konfigurasi Nginx dan sebagainya. Namun alat ini hanya berjalan di sistem operasi Ubuntu/Debian.

Untuk penggunaan easyengine dalam melakukan instalasi Nginx dan WordPress, ikuti petunjuk instalasinya di sini.

Referensi

7 responses
  1. Gravatar of Jauhari
    Jauhari

    Ha tertarik itu mencoba easyengine… tapi kalau Blog lama nggak isa? Dalam artian di Server itu sudah ada NGINX ama WordPress juga

    Gravatar of Muhammad Zamroni
    Muhammad Zamroni

    Belom nyoba, tapi intine EasyEngine itu mempermudah instalasi dan konfigurasi Nginx dan WP.. yang ribet emang kalo udah migrasi-migrasian.. ๐Ÿ˜€

  2. Gravatar of cable chains for cars
    cable chains for cars

    ane punya vps digital ocean dgn centos v 6. udah install nginx, MySQL, PHP (LEMP) stack. maunya bikin wpmu, utak utak atik config nya nginx di tutor” akhirnya ada dikit masalah, ane hapus pake rm folde nginx yang di rm -f -r /etc/nginx, tapi ada file confignya yg ga bisa terhapus.
    kira” bisa dibantu ga install ulang nginx nya sampai wpmu nya bisa di publish. ane punya domain yang akan dibikin wpmu. tolong dikabarin ya via sms 081363331369 atau email, dan sekalian berapa maharnya. tapi jangan mahal” ya, (ini tabungan mahasiswa gan).
    udah 10 hari nih vps belumjuga wpmu nya di publish. tolong komentar ini jangan di publish ya

  3. Gravatar of Basoro
    Basoro

    Reloading nginx configuration: nginx: [emerg] unknown “blogid” variable

    Sepertinya ada yg kurang di config-nya

    ————
    map $http_host $blogid {
    default -999;
    }
    ——–

  4. Tema Blog 2015: Miranti | matriphe!
  5. Gravatar of Travamart
    Travamart

    Kalau di install web e-commerce VPS, nih asumsi ram 512 mb untuk startip pertama, nah kalau di install semacam magento atau prestashop kira2 ngangkat gak ya ngeload webnya kalau di kunjungi dalam sehari kita ambil saja pengunjung 1-3ribu. ??

    oh iya itu dimedan web yang shared host lumayan ya performnya server singapore? kira-kira perbulannya nampung beberapa visitor ??

    makasih.