Menjalankan WordPress Multisitus dari Apache (cPanel) Beralih ke Nginx
Menggunakan Nginx untuk menjalankan WordPress multisitus yang sebelumnya menggunakan Apache/Cpanel.
Muhammad Zamroni
Berlin, DE
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
Related Articles
Memasang Informasi Penulis di Halaman Pencarian Google
Download Video Youtube Menggunakan youtube-dl
Skrip BASH Autoupdate /etc/hosts Sesuai IP Dinamis
Instalasi Ghost Multisitus Menggunakan MySQL dan Nginx
Pingbacks & Trackbacks
2[…] memori 512 MB. Untuk sebuah blog yang tak begitu banyak pengunjungnya, rasanya lebih dari cukup. Terima kasih kepada Nginx yang telah membuat blog ini […]
[…] cukup lama saya menggunakan layanan cloud Digital Ocean sejak Februari 2014, saya memutuskan untuk pindah ke layanan cloud […]
Comments
4ane 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
Reloading nginx configuration: nginx: [emerg] unknown "blogid" variable
Sepertinya ada yg kurang di config-nya
------------
map $http_host $blogid {
default -999;
}
--------
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.
Ha tertarik itu mencoba easyengine... tapi kalau Blog lama nggak isa? Dalam artian di Server itu sudah ada NGINX ama WordPress juga
Belom nyoba, tapi intine EasyEngine itu mempermudah instalasi dan konfigurasi Nginx dan WP.. yang ribet emang kalo udah migrasi-migrasian.. :D