Sebelum lanjut kepada caranya, mari kita bahas sedikit tentang Nginx. Nginx merupakan salah satu web yang paling populer didunia dan bertanggung jawab dalam meng-hosting beberapa situs dengan lalu lintas yang terbesar dan tertinggi di internet. Kelebihan Nginx sendiri lebih ramah sumber daya dibandingkan dengan Apache dalam beberapa kasus, serta dapat digunnakan sebagai web server maupun Reversed proxy.
PENTING!
Sebelum memulai panduan ini, Anda harus memiliki pengguna biasa non-root (bukan root) dengan hak istimewa sudo dan firewall dasar yang dikonfigurasi di server Anda. Anda dapat mempelajari cara mengonfigurasi akun pengguna biasa dengan mengikuti panduan penyiapan server awal untuk Ubuntu 18.04.
Ketika Anda telah memiliki akun yang tersedia, masuk sebagai pengguna non-root untuk memulai.
Langkah 1 > Install Nginx
Karena Nginx tersedia di repositori default Ubuntu, dimungkinkan untuk menginstalnya dari repositori ini menggunakan apt packaging system. Karena ini mungkin interaksi pertama Anda dengan sistem pengemasan apt di sesi ini, perbarui indeks paket lokal sehingga Anda memiliki akses ke daftar paket terbaru. Setelah login ke Ubuntu server melalui SSH ketik perintah berikut pada termal:
nginx:
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 mulai 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 itu sendiri
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Berikut ini, 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)
Anda disarankan agar mengaktifkan profil yang paling ketat yang masih mengizinkan lalu lintas yang telah Anda konfigurasikan. Karena Anda belum mengonfigurasi SSL untuk server Anda dalam panduan ini, Anda hanya perlu mengizinkan lalu lintas di port 80
Anda dapat mengaktifkan ini dengan mengetik berikut ini
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 tahap 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/\/.*$//'
Untuk alternatif lain bisa juga menggunakan :
curl -4 icanhazip.com
Setelah mengetahui alamat IP silahkan ketik alamat IP pada Browser
http://alamat_ip_server_ip "contoh http://123.456.789.000"
Jika halaman yang muncul adalah halaman berikut, berarti Instalasi sudah berhasil :
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 contoh.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.
Daripada memodifikasi /var/www/html, mari kita membuat struktur direktori di dalam /var/www untuk situs contoh.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/contoh.com
Next, tetapkan kepemilikan direktori dengan variabel $USER:
sudo chown -R $USER:$USER /var/www/contoh.com
Izin root web harus benar jika Anda belum mengubah nilai umask, tetapi Anda dapat memastikan dengan mengetik:
sudo chmod -R 755 /var/www/contoh.com
Selanjutnya, buat halaman contoh index.html menggunakan nano atau editor favorit Anda:
nano /var/www/contoh.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>
Simpan dan tutup file jika anda telah selesai. Jika Anda menggunakan nano, Anda dapat keluar dengan menekan CTRL + X lalu Y dan ENTER.
Agar Nginx dapat menyajikan konten ini, Anda perlu membuat block server dengan arahan yang benar. Daripada memodifikasi file konfigurasi default secara langsung, mari kita buat yang baru di :
sudo nano /etc/nginx/sites-available/contoh.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/ contoh.com;
index index.html index.htm index.nginx-debian.html;
server_name contoh.com www.contoh.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/
Dua blok server sekarang diaktifkan dan dikonfigurasi untuk merespons permintaan berdasarkan perintah listen dan server_name.
- contoh.com: Akan menanggapi permintaan untuk contoh.com dan www.contoh.com
- default: Akan menanggapi setiap permintaan pada port 80 yang tidak cocok dengan dua blok lainnya.
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
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://contoh.com, Anda akan melihat sesuatu seperti ini:
Atau:
Langkah 6 > Mengenal File dan Direktori Nginx Penting
Sekarang setelah Anda mengetahui cara mengelola layanan Nginx itu sendiri, Anda harus meluangkan beberapa menit untuk membiasakan diri dengan beberapa direktori dan file penting.
Isi
- /var/www/html: Konten web yang sebenarnya, yang secara default hanya terdiri dari halaman Nginx default yang Anda lihat sebelumnya, disajikan di luar direktori /var/www/html. Ini dapat diubah dengan mengubah file konfigurasi Nginx.
Konfigurasi Server
- /etc/nginx: Direktori konfigurasi Nginx. Semua file konfigurasi Nginx berada di sini.
- /etc/nginx/nginx.conf: File konfigurasi Nginx utama. Ini dapat dimodifikasi untuk membuat perubahan pada konfigurasi global Nginx.
- /etc/nginx/sites-available/: Direktori tempat blok server per situs dapat disimpan. Nginx tidak akan menggunakan file konfigurasi yang ditemukan di direktori ini kecuali file tersebut ditautkan ke direktori yang mendukung situs. Biasanya, semua konfigurasi blok server dilakukan di direktori ini, dan kemudian diaktifkan dengan menautkan ke direktori lain.
- /etc/nginx/sites-enabled/: Direktori tempat blok server per situs yang diaktifkan disimpan. Biasanya, ini dibuat dengan menautkan ke file konfigurasi yang ditemukan di direktori situs yang tersedia.
- /etc/nginx/snippets: Direktori ini berisi fragmen konfigurasi yang dapat dimasukkan di tempat lain dalam konfigurasi Nginx. Segmen konfigurasi yang berpotensi berulang adalah kandidat yang baik untuk pemfaktoran ulang menjadi cuplikan.
Log Server
- /var/log/nginx/access.log: Setiap permintaan ke server web Anda dicatat dalam file log ini kecuali jika Nginx dikonfigurasi untuk melakukan sebaliknya.
- /var/log/nginx/error.log: Setiap kesalahan Nginx akan dicatat di log ini.
Kesimpulan
Sekarang setelah server web Anda terinstal, Anda memiliki banyak opsi untuk jenis konten yang akan disajikan dan teknologi yang ingin Anda gunakan untuk menciptakan pengalaman yang lebih kaya.