Cara Install NginX di AWS EC2 Ubuntu 20.04 Yang Mudah – Nginx (baca: engine x) adalah aplikasi Linux open-source gratis untuk webserver. Bekerja sebagai Reserve Proxy dengan mengarahkan lalu lintas / trafik web ke server tertentu. Nginx digunakan untuk keamanan dan penyeimbangan beban, tetapi juga dapat berfungsi secara independen sebagai webserver.
Nginx maupun Apache2 adalah server web populer yang digunakan untuk mengirimkan halaman web ke browser pengguna.
Jika ingin menggunakan Apache2 sebagai webserver silahkan baca tutorial Cara Install Apache2 di AWS EC2 Ubuntu 20.04.
Pada tutorial kali ini, kita akan membahas bagaimana cara menginstall NginX Webserver di AWS EC2 menggunakan Ubuntu 20.04 dengan benar.
Sebelumnya jika belum mengenal apa itu AWS EC2 dan bagaimana cara membuat virtual machine silahkan membaca tutorial disini.
Persyaratan Install NginX
- Server yang berjalan dengan OS Ubuntu, disini saya menggunakan AWS EC2
- SSH & User dengan privilege perintah sudo
Step 1: Update Package
Selalu jalankan perintah update dan upgrade terlebih dahulu untuk pertama kali akses ke host. Memastikan semua package dan system terupdate dengan benar.
sudo apt update - y && sudo apt upgrade -y
Step 2: Install NginX dari Ubuntu Repository
sudo apt-get install nginx -y
Setelah sukses menginstall, verifikasi instalasi NginX:
nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
Step 3: Testing NginX Webserver
Setelah instalasi dan verifikasi selesai, NginX service akan berjalan/running otomatis. Untuk memastikan NginX running gunakan perintah ini:
sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor pre>
Active: active (running) since Wed 2021-10-20 07:43:40 UTC; 6h ago
Docs: man:nginx(8) Process: 535 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_pr>
Process: 607 ExecStart=/usr/sbin/nginx -g daemon on; master_process on;> Main PID: 639 (nginx)
Tasks: 2 (limit: 1154) Memory: 8.3M
CGroup: /system.slice/nginx.service ├─639 nginx: master process /usr/sbin/nginx -g daemon on; mast>
└─647 nginx: worker process
Oct 20 07:43:39 ip-xxx-xx-xx-xxx systemd[1]: Starting A high performance web>
Oct 20 07:43:40 ip-xxx-xx-xx-xxx systemd[1]: Started A high performance web>
Selanjutnya kita memverifikasi apakah halaman NginX meggunakan web browser berfungsi dengan baik.
Note: Pastikan HTTP Port 80 diizinkan secara publik dari inbound traffic (lalu linstas masuk) dalam Security Group pada instance EC2.
Buka halaman AWS EC2 Instance running click dan lihat pada bagian Description, Public DNS / Public IP.
Copy alamat Public DNS/IP ke web browser.
Dari Step 3 kita sudah bisa mengakses NginX webserver kita melalui web browser. Selanjutnya jika kita membuat file atau dikemudian kita meng-upload file untuk web, apakah NginX berfungsi dengan baik juga.
Kembali ke SSH, dan akses directory web:
cd /var/www/html
~/var/www/html
$ ls
index.nginx-debian.html
Directory “html” inilah dimana kita mengupload file dan bisa diakses melalui web browser. Secara default index.nginx-debian.html adalah file NginX yang menginformasikan bahwa NginX berfungsi melalui web browser. Silahkan untuk menghapus atau mengedit file tersebut dengan editor untuk memastikan berjalan. Dalam test kali ini saya akan membuat file baru test.html, yang berisikan standart HTML script.
/var/www/html$ sudo nano test.html
<html>
<head>
<title>Welcome to JudisWeb.com!</title>
</head>
<body>
<h1>Hello World!!! </h1>
</body>
</html>
Setelah menyimpan file test.html tersebut, buka web browser tambahkan pada address /test.html jika berhasil maka NginX sepenuhnya berfungsi normal.
Step 4: Mengontrol NginX service
Kita dapat mengelola webserver dengan perintah umum pada NginX:
Start Nginx service
sudo service nginx start
Stop Nginx service
sudo service nginx stop
Restart Nginx service
sudo service nginx restart
Reload Nginx service tanpa memutuskan koneksi
sudo service nginx reload
Mengaktifkan Nginx service otomatis berjalan saat system booting
sudo systemctl enable nginx
Menonaktifkan Nginx service
sudo systemctl disable nginx
Step 5: Mengijinkan traffic untuk NginX
Nginx membutuhkan akses melalui firewall sistem. Untuk melakukan ini, Nginx menginstal satu set profil untuk ufw default Ubuntu (UnComplicated Firewall).
Menampilkan profil Nginx yang tersedia:
sudo ufw app list
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Note: aplikasi lain mungkin masuk dalam daftar ufw misal OpenSSH
Untuk memberikan akses Nginx melalui firewall default Ubuntu, masukkan perintah berikut ini:
sudo ufw allow 'nginx http'
Rules updated
Rules updated (v6)
Untuk https (http aman atau terenkripsi):
sudo ufw allow 'nginx https'
Dan untuk ijin keduanya http maupun https:
sudo ufw allow 'nginx full'
Setelah mengijinkan akses lalu lintas ke dalam firewall, refresh setting firewall dengan perintah ini:
sudo ufw reload
Lokasi file Konfigurasi NginX
Secara default, Nginx menyimpan konfigurasi dan file log yang berbeda di lokasi berikut:
- /var/www/html – Konten situs web seperti yang dilihat oleh pengunjung html, php, jpg, png, dll
- /etc/nginx – Lokasi file aplikasi Nginx
- /etc/nginx/nginx.conf – File konfigurasi utama Nginx
- /etc/nginx/sites-available – Daftar semua situs web yang dikonfigurasi melalui Nginx
- /etc/nginx/sites-enabled – Daftar situs web yang secara aktif dilayani oleh Nginx
- /var/log/nginx/access.log – Akses log yang melacak setiap permintaan ke web server
- /var/log/ngins/error.log – Sebuah log dari setiap kesalahan yang dihasilkan di Nginx
Dari tutorial ini kita bisa menginstall dan mencoba NginX webserver berjalan dan berfungsi dengan baik.