Install dan Konfigurasi Nginx di Ubuntu Server
Langkah 1 – Install Nginx
Karena Nginx tersedia di repositori default Ubuntu, maka pengguna dapat menginstal dari repositori ini menggunakan apt packaging system.
setelah login ke Ubuntu server melalui SSH ketik perintah berikut pada terminal :
sudo apt update
sudo apt install nginx
Setelah menerima prosedur, apt akan menginstal Nginx dan semua dependensi yang diperlukan ke server Anda.
Langkah 2 – Izinkan Akses Firewall
Sebelum menguji Nginx, perangkat lunak firewall perlu disesuaikan untuk memungkinkan akses ke layanan. Nginx mendaftarkan dirinya sebagai layanan dengan ufw saat instalasi, membuatnya mudah untuk memungkinkan akses Nginx.
Daftar konfigurasi aplikasi yang ufw tahu cara bekerja dengan mengetik:
sudo ufw app list
Output bisa berbeda, namun yang perlu kita soroti adalah Nginx
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Seperti yang Anda lihat, ada tiga profil yang tersedia untuk Nginx:
- Nginx Full: Profil ini membuka port 80 (normal, lalu lintas web tidak terenkripsi) dan port 443 (TLS / SSL lalu lintas terenkripsi)
- Nginx HTTP: Profil ini hanya membuka port 80 (normal, lalu lintas web tidak terenkripsi)
- Nginx HTTPS: Profil ini hanya membuka port 443 (TLS / SSL lalu lintas terenkripsi)
Disarankan agar Anda mengaktifkan profil paling ketat yang masih memungkinkan lalu lintas yang aman ke server Ubuntu Anda. Karena masih tahap awal dan mengonfigurasi SSL untuk server dalam panduan ini, kami hanya perlu mengizinkan lalu lintas di port 80.
Silahkan ketik perintah berikut untuk mengijinkan akses Nginx untuk melewati firewall
sudo ufw allow 'Nginx HTTP'
Setelah selesai, cek konfigurasi Anda dengan perintah :
sudo ufw status
Anda akan melihat lalu lintas HTTP diizinkan di output yang ditampilkan:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Langkah 3 – Periksa Status Server
Di langkah proses instalasi ini, Ubuntu server sudah terpasang dan otomatis memulai Nginx. Server web seharusnya sudah aktif dan berjalan.
Kita dapat memeriksa dengan systemd init system untuk memastikan layanan berjalan dengan mengetik:
systemctl status nginx
Output :
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process
Setelah Nginx Berjalan di terminal Linux, langkah selanjutnya periksa pada Browser dengan mengetik Alamat IP, Untuk mengetahui Alamat IP ada 2 cara yang bisa anda lakukan :
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Setelah mengetahui alamat IP silahkan ketik alamat IP pada Browser
http://alamat_ip_server_ip "contoh http://123.456.789.000"
Langkah 4 – Manajemen dasar Nginx
Sekarang setelah server web Anda aktif dan berjalan, mari kita tinjau beberapa perintah manajemen dasar.
Untuk menghentikan Nginx gunakan perintah :
sudo systemctl stop nginx
Untuk memulai Nginx (saat Nginx berhenti) gunakan perintah
sudo systemctl start nginx
Untuk menghentikan dan memulai ulang Nginx gunakan perintah
sudo systemctl restart nginx
Jika Anda hanya membuat perubahan konfigurasi, Nginx dapat memuat ulang tanpa menghambat koneksi ke server (delay sekitar 1-3 detik). Untuk melakukan ini, ketik:
sudo systemctl reload nginx
Secara default, Nginx dikonfigurasi untuk memulai secara otomatis ketika server melakukan booting. Jika ini bukan yang Anda inginkan, Anda dapat menonaktifkan perilaku ini dengan mengetik:
sudo systemctl disable nginx
Untuk mengaktifkan kembali layanan untuk memulai saat boot, Anda dapat mengetik:
sudo systemctl enable nginx
Langkah 5 – Setting Server Blocks
Saat menggunakan web server Nginx, server block (mirip dengan host virtual di Apache) dapat digunakan untuk merangkum detail konfigurasi dan menghosting lebih dari satu domain di satu server. Kami akan menyiapkan domain bernama example.com, tetapi Anda harus menggantinya dengan nama domain Anda sendiri.
Nginx pada Ubuntu memiliki satu block server yang diaktifkan secara default yang dikonfigurasi untuk menyajikan dokumen dari direktori di /var/www/html. Meskipun ini bekerja dengan baik untuk satu situs, itu bisa menjadi berat jika Anda meng-hosting beberapa situs.
Alih-alih memodifikasi /var/www/html
, mari kita membuat struktur direktori di dalam /var/www
untuk situs example.com kami, membiarkan/var/www/html
sebagai direktori default untuk dilayani jika permintaan klien tidak cocok dengan situs lain mana pun..
Buat direktori untuk example.com sebagai berikut, menggunakan flag -p (p = parent directory) untuk membuat direktori induk yang diperlukan:
sudo mkdir -p /var/www/example.com
Next, tetapkan kepemilikan direktori dengan variabel $USER:
sudo chown -R $USER:$USER /var/www/example.com
Izin root web harus benar jika Anda belum mengubah nilai umask
, tetapi Anda dapat memastikan dengan mengetik:
sudo chmod -R 755 /var/www/example.com
Selanjutnya, buat halaman contoh index.html menggunakan nano atau editor favorit Anda:
nano /var/www/example.com/index.html
Di dalam, tambahkan contoh HTML berikut:
<html> <head> <title>Situs Pertama!</title> </head> <body> <h1>Berhasil! Pengaturan Server block Nginx Berhasil!</h1> </body> </html>
Save and close the file when you are finished.
Agar Nginx dapat menyajikan konten ini, Anda perlu membuat block server dengan arahan yang benar. Alih-alih memodifikasi file konfigurasi default secara langsung, mari kita buat yang baru di :
sudo nano /etc/nginx/sites-available/example.com
Copy dan Paste konfigurasi block berikut, yang mirip dengan default, tetapi diperbarui untuk direktori dan nama domain baru kami:
server { listen 80; listen [::]:80; root /var/www/example.com; index index.html index.htm index.nginx-debian.html; server_name example.com www.example.com; location / { try_files $uri $uri/ =404; } }
Perhatikan bahwa kami telah memperbarui konfigurasi root
ke direktori baru, dan server_name
ke nama domain.
Selanjutnya, mari kita aktifkan file dengan membuat tautan dari situ ke direktori yang didukung situs, yang dibaca Nginx saat startup:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Untuk menghindari kemungkinan masalah memori hash bucket yang dapat timbul dari penambahan nama server tambahan, perlu untuk menyesuaikan nilai tunggal dalam file /etc/nginx/nginx.conf. Buka file:
sudo nano /etc/nginx/nginx.conf
Temukan direktif server_names_hash_bucket_size dan hapus simbol # untuk menghilangkan komentar pada baris:
... http { ... server_names_hash_bucket_size 64; ... } ...
Selanjutnya, uji untuk memastikan bahwa tidak ada kesalahan sintaks pada file Nginx Anda
sudo nginx -t
Simpan dan tutup file ketika Anda selesai.
Jika tidak ada masalah, mulai ulang Nginx untuk mengaktifkan perubahan Anda:
sudo systemctl restart nginx
Nginx sekarang harus melayani nama domain Anda. Untuk melihat pengujian konfigurasi ini dengan menavigasi ke http://example.com, Anda akan melihat sesuatu seperti ini:
server block nginx setelah berhasil