Konfigurasi Web Server Nginx + Cloudflare Pada Raspberry Pi 4 (Part 3)

Halo balik lagi semua, sebelumnya kita udah konfigurasi integrasi cloudflare & SSL. Di part 3 ini kita akan banyak konfigurasi di ubuntunya. Sebelum mulai pastiin kalian udah cek langkah dibawah ini ya.

Ok aku anggap kalian sudah prepare semuanya dan sekarang kalian bisa hidupin Ubuntu Server kalian dan login Super User, caranya ketikkan sudo su pada terminal kalian dan login. Setelah itu kita akan mulai dengan instalasi webserver NGINX, untuk instalasinya kalian bisa pakai command di bawah ini.

apt update
apt install nginx

Setelah proses instalasi selesai kalian bisa menggunakan perintah dibawah ini untuk Stop, Start & Enable untuk memastikan nginx selalu berjalan setiap server kalian dihidupkan. Untuk Commandnya kalian bisa lihat dibawah.

systemctl stop nginx.service
systemctl start nginx.service
systemctl enable nginx.service

Sekarang webserver nginx kalian udah terinstall. Jika kalian telah terhubung ke internet dan mendapat IP Public (dan pastikan port 80 & 443 terbuka) kalian bisa langsung buka domain yang sudah kalian integrasikan di cloudflare di part sebelumnya menggunakan browser kalian, Jika berhasil maka browser akan menampilkan halaman welcome to nginx seperti di bawah ini.

jika halaman ini akan muncul berarti udah sukses, webserver kalian terhubung ke domain

Jika menggunakan nama domain belum bisa terhubung tetapi menggunakan IP Public bisa terhubung berarti IP Public kalian belum terhubung dengan domain kalian di cloudflare, kalian bisa masukkan IP Public yang kalian dapat dari ISP (Pastikan ISP kalian menyediakan IP Public bukan IP Private) dan selanjutnya masukkan IP Public tersebut ke pengaturan DNS domain kalian di akun cloudflare kalian (Kalian juga bisa pakai DDNS Cloudflare jika IP Public yang kalian dapat dari ISP tipe Dynamic). Jika masih belum terhubung juga kalian bisa troubleshoot dengan perhatikan point point dibawah ini.

  • Cek IP yang kalian dapat dari ISP bukan IP Private
  • Cek apakah port forwarding di port 80 & 443 udah terbuka, lalu apa IP Ubuntu Server kalian sudah sama dengan pengaturan IP di Port Forwarding
  • Cek firewall Ubuntu Server kalian apakah sudah open port 80 & 443
  • Cek nameserver domain kalian apa sudah terhubung ke cloudflare

Ok dari sini aku anggap domain kalian sudah terhubung. Selanjutnya kita akan mengkonfigurasi nginx lalu menginstall database (disini saya pakai MariaDB) & PHP. Kita mulai dengan menginstall Maria DB sebagai database server, untuk menginstall MariaDB kalian bisa jalankan command di bawah ini.

apt-get install mariadb-server mariadb-client

Setelah proses instalasi selesai kalian bisa menggunakan perintah dibawah ini untuk Stop, Start & Enable untuk memastikan MariaDB selalu berjalan setiap server kalian dihidupkan. Untuk Commandnya kalian bisa lihat dibawah.

systemctl stop mysql.service
systemctl start mysql.service
systemctl enable mysql.service

Langkah selanjutnya kita akan melakukan instalasi MariaDB, untuk ke tahap secure installation kalian bisa masukkan command dibawah ini dan nanti kalian masukkan password root kalian.

mysql_secure_installation

Setelah muncul prompt pertanyaan, kalian bisa masukkan jawabannya sesuai dengan panduan dibawah ini.

Enter current password for root (enter for none): (Langsung tekan enter aja)
Set root password? [Y/n]: Y
New password: (Masukkan password)
Re-enter new password: (Ulangi masukkan password)
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Ok database telah terinstall, selanjutnya kita install PHP. Untuk instalasinya kalian bisa masukkan command di bawah ini (command di bwah ini akan menginstall versi verbaru versi stable pada repository ubuntu).

apt install php-fpm php-mysql

Selanjutnya kita akan mengedit file konfigurasi PHP. Dalam konfigurasi ini mempunyai setting yang optimal untuk CMS wordpress. Karena dalam project ini paling engga skenarionya webserver paling enggak dapat menjalankan CMS wordpress (karena wordpress CMS yang paling banyak dipakai). Lalu karena kita menginstall versi terbaru kalian harus cek dulu versi berapa yang ada di server kalian selanjutnya kalian bisa edit file konfigurasinya, untuk commandnya kalian bisa lihat di bawah ini.

ls /etc/php/
(setelah itu akan muncul directory versinya, untuk punya saya versi 7.4 . kalian bisa ganti dengan versi yang kalian punya)
nano /etc/php/7.4/fpm/php.ini
(Setelah itu ganti beberapa line sesuai konfigurasi di bawah ini)
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360

Ok selesai, untuk setiap kali kalian mengubah pengaturan php.ini jangan lupa untuk restart webserver nginx kalian. Kalian bisa restart nginx dengan command di bawah ini.

systemctl restart nginx.service

Langkah selanjutnya kita tinggal mengisi konten & membuat serverblock pada webserver kita. Kalian bisa mengisi dengan konten website yang sudah kalian punya sebelumnya atau kalian bisa buat website dari 0, kalian juga bisa menginstall CMS favorit kalian seperti wordpress. Untuk pengguna wordpress, jika kalian ingin memindahkan website kalian bisa menggunakan plugin WP duplicator (menurut saya migrasi paling gampang). Mungkin akan saya buatkan tutorialnya di artikel selanjutnya, tetapi menurut pengalaman saya itu paling gampang dan memindahkan full site dengan semua database yang terhubung (website ini dipindahkan pakai plugin WP Duplicator). OK, kalau gitu lanjut kalian bisa masukkan konten website kalian pada directory di bawah ini

mkdir /var/www/namadomain.com
(namadomain kalian ganti domain kalian, lalu paste konten website di directory baru tersebut)
(Selanjutnya jalankan command dibawah ini untuk memberikan permission web server)
chown -R www-data:www-data /var/www/html/namadomain.com/
chmod -R 755 /var/www/html/namadomain.com/

Selanjutnya untuk langkah terakhir kita akan membuat serverblock pada nginx untuk membuat konten website pada directory dapat dibuka sesuai dengan nama domain. Pada serverblock pastikan certificate pem key yang udah kita simpan pada part 2 sebelumnya sudah sesuai dengan nama domain ya. Ok untuk membuat file konfigurasi serverblock di nginx, kalian bisa jalankan command di bawah ini

nano /etc/nginx/sites-available/namadomain.com

setelah itu paste konfigurasi dibawah ini dan ganti dengan nama domain kalian & juga ganti php fpm dengan versi yang kalian pakai.

server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;

server_name  namadomain.com www.namadomain.com; 
root   /var/www/namadomain.com; 
index  index.php index.html index.htm; 

ssl_certificate /etc/ssl/certs/namadomain.com.pem; 
ssl_certificate_key /etc/ssl/private/namadomain.com.pem; 
ssl_client_certificate /etc/ssl/certs/origin-pull-ca.pem; 
ssl_verify_client on; 

client_max_body_size 100M; 

autoindex off; 

location / { 
    try_files $uri $uri/ /index.php?$args; 
} 
location ~ \.php$ { 
     include snippets/fastcgi-php.conf; 
     fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include fastcgi_params; 
} 
}

Setelah menyimpan file konfigurasi diatas, untuk meng enable pengaturan diatas kalian bisa jalankan command di bawah ini

ln -s /etc/nginx/sites-available/namadomain.com /etc/nginx/sites-enabled/
systemctl restart nginx.service

Dan akhirnya selesai, domain dan konten website kalian telah online di internet. Kalian bisa mengecek langsung pada browser dengan memasukkan nama domain yang kalian setting pada tutorial ini 🙂

Konfigurasi Web Server Nginx + Cloudflare Pada Raspberry Pi 4 (Part 1)

Halo semua, di artikel kali ini saya akan ngeshare pengalaman saya konfigurasi webserver dengan menggunakan raspberry pi 4 (kelanjutan dari artikel yang lalu). Ok sedikit bocoran aja untuk webserver kita kali ini akan menggunakan Cloudflare + Linux Ubuntu Server 20.04 (atau diatasnya mungkin masih bisa) dengan raspberry pi 4 yang dihubungkan dengan direct boot USB SSD/NVME (kalau kalian ketinggalan bisa lihat artikel ini). Nah selanjutnya peralatan yang bisa kalian siapin di project ini antara lain:

  • Raspberry Pi 4 dengan OS Ubuntu Server 20.04 (atau versi lain jg gpp yg penting paham) kalo bemum install saya ada tutorialnya bisa dilihat disini
  • Router ISP yang sudah di port Forwarding 80 & 443 (kalo yang pakai indihome ini tutorialnya)
  • SSD/NVME beserta USB adapter yang terhubung ke raspberry pi 4 di USB 3.0
  • Domain Name (bisa .com .net .info dll bebas)

Ok kita mulai aja, disini webserver yang akan kita siapkan menggunakan cloudflare sebagai CDN. Karena cloudflare menyediakan CDN secara gratis yang bisa mempercepat performa webserver kita. Pertama kali jika kalian belum mempunyai akun cloudflare kalian bisa daftar disini dan kalau sudah melakukan login, kalian harus menambahkan domain yang sudah kalian punya di cloudflare dan menghubungkannya seperti contoh dibawah ini.

klik di + add site, untuk menambahkan domain

Setelah klik di add site maka akan muncul tampilan seperti di bawah ini untuk memasukkan domain kamu

masukkan nama domain kamu di form tersebut dan tekan add site setelahnya

Jika telah selesai memasukkan domain maka kamu akan dihadapkan dengan tabel pricing seperti dibawah ini, untuk project ini kalian pilih free plan seperti gambar dibawah ini lalu klik continue setelah sudah selesai

pilih free plan (paling bawah) dan lalu klik continue

selanjutnya cloudflare akan mengimpor pengaturan DNS kamu di domain yang saat ini sedang pakai, sehingga ketika kamu ganti nameserver ke cloudflare domain kamu masih online dan menunjuk pada DNS yang sama (intinya nanti pas perpindahan domain gk akan down websitenya). Untuk tahap ini kalian bisa biarin aja atau edit kalau kalian emang mau ganti host, setelah itu kalian klik continue sampai kalian berada pada page seperti gambar di bawah ini.

di tahap ini, kalian bisa ganti name server domain kalian dan point ke NS nya Cloudflare

Setelah itu di tahap ini kalian harus mengganti nameserver domain kalian ke nameserver punya cloudflare untuk menghubungkan domain kalian ke CDN cloudflare. Btw dalam perpindahannya gak akan bikin website kalian down kok, karena cloudflare sudah mengimpor pengaturan DNS domain kalian sebelumnya. Untuk mengganti nameserver kalian bisa ganti di web kalian bisa domain tersebut, contohnya nih domain ini aku beli di namesilo lalu aku harus menggantinya lewat namesilo. kalian bisa lihat contohnya dibawah ini.

ini pengaturan nameserver di namesilo, kalian bisa ganti sesuai dimana kalian daftarkan domain

Setelah sudah selesai mengganti nameserver sesuai pada page di cloudflare selanjutnya kalian bisa klik “Done, check nameservers”. Perpindahan nameserver biasanya membutuhkan waktu 1×24 jam tergantung kebijakan website tempat kalian mendaftar, tapi biasanya tk lebih dari beberapa menit hingga jam. Ok, Jika sudah selesai dan sukses maka domain kalian akan muncul di dashboard cloudflare kalian dengan tanda centang hijau seperti gambar dibawah ini.

jika sudah muncul di dashboard cloudflare seperti ini, maka domain kalian berhasil terhubung

Ok disini kita telah selesai menghubungkan domain ke cloudflare dan saya mutusin untuk melanjutkannya di part 2 karena lumayan panjang kalau di jadikan 1 post. Untuk part 2 nanti akan mencakup konfigurasi cloudflare dan mengaktifkan fitur SSL cloudflare untuk domain kalian. Kalian bisa lanjut ke part 2 dengan klik di bawah ini.

Cara Direct Boot USB SSD/NVME Ubuntu Server 20.04 Raspberry Pi 4

Hallo Men, ketika searching artikel ini berarti kalian berencana memakai SSD atau NVME pada raspberry kalian dan kalian sekarang berada pada jalan yang benar. Sebenernya mungkin kalian ada yang tau kalau kita bisa pakai SSD untuk OS dengan Berryboot sebagai selector OS ketika booting tapi untuk artikel kali ini beda kita akan direct boot ke SSD/NVME melalui USB tanpa perantara Berryboot atau pakai loader di micro SD sehingga lebih native (menurutku sih). Jadi di tutorial kali ini kalian tidak memerlukan Micro SD sama sekali dan yang kalian butuhkan ialah SSD/NVME (HDD bisa juga sih, cuman powersupply harus ada ya) lalu jangan lupa pakai adapter/converter USB yang terhubung ke Raspberry Pi 4 kalian (direkomendasikan USB Versi 3.0 atau diatasnya).

Ok langsung aja ya, sebenernya gampang banget caranya. Pertama tama kalian download dulu flashernya, yang aku pakai disini namanya balena etcher kalian bisa download disini dan untuk ISO Ubuntu Server 20.04 direct boot kalian bisa download disini (atau ini link forumnya yang menyediakan). sesudah kalian buka linknya donload flasher dan ISO ubuntu 20.04 nya ketika sudah selesai tinggal buka flashernya. maka akan ada tampilan kayak dibawah ini.

Setelah itu pilih flash from file lalu pilih ISO Ubuntu Server 20.04 yang udah kalian download tadi dan selanjutnya di select target masukkan SSD/NVME yang ingin kalian flash dengan ISO tersebut. Setelah itu di langkah terakhir kalian tinggal klik flash dan tunggu hingga loading selesai.

Seteleh proses flashing selesai tancapkan SSD/NVME kalian dengan adapter di raspberry melalui USB 3.0 biar performa maksimal. Tunggu beberapa saat maka booting akan lanjut ke terminal Ubuntu Server (kalian juga bisa mengakses terminal melalui SSH di port 22). Selanjutnya untuk login di terminal kalian bisa masukkan username : ubuntu , password: ubuntu .

Selamat kalian telah sukses menginstall Ubuntu Server 20.04 di Raspberry 4 😀