Nginx
WEB
SERVER
MUHAMAD ANDI SOFIYAN
__________________________________________________
CARA INSTALASI DAN KONFIGURASI WEB SERVER NGINX
. . .
www belajarserver web id
Disusun di tahun 2021 Masehi
Buku ini boleh di-print. Ukuran kertas: Letter. File digitalnya boleh disebarkan seluas-luasnya untuk keperluan edukasi, tanpa merubah apa pun di dalamnya, dan
tetap menyertakan halaman ini, apabila di-print filenya, di dalam bundel jilidnya.
SEMUA KONTEN DALAM BUKU INI TELAH DIPRAKTEKKAN.
UNTUK MEMPRAKTEKKAN PANDUAN INI, GUNAKANLAH SERVER KOSONG. TIDAK DISARANKAN MENGGUNAKAN SERVER PRODUKSI.
TERSEDIA JASA LES PRIVAT ONLINE UNTUK MEMAHAMI ISI DI DALAM BUKU INI.
UNTUK MENDAPATKAN LES PRIVAT ONLINE UNTUK BUKU PANDUAN INI, DAPAT MENGHUBUNGI WHATSAPP +62-813-940-333-63
Cara Instalasi Web Server Nginx (engine-x)
Pengantar
Nginx adalah salah satu server web terpopuler di dunia dan berperan sebagai host dari sebagian situs terbesar dan situs yang memiliki traffic tertinggi di jagad internet. Ini adalah pilihan ringan yang dapat digunakan baik sebagai server web atau reverse proxy.
Dalam panduan ini, kita akan membahas cara menginstal Nginx pada server Ubuntu, menyesuaikan firewall, mengelola proses Nginx, dan menyiapkan blok server untuk menjadi host lebih dari satu domain dari satu server tunggal.
Prasyarat
Sebelum Anda memulai panduan ini, Anda harus memiliki pengguna non-root dengan sudo yang terkonfigurasi di server.
Ketika Anda sudah memiliki akun, log masuk sebagai pengguna non-root untuk memulai.
Lama pembelajaran: satu pertemuan
Langkah 1 – Menginstal Nginx
Karena Nginx tersedia di repositori Ubuntu, maka kita dimungkinkan untuk menginstalnya dari repositori ini menggunakan apt.
Karena ini adalah interaksi pertama kita dengan apt pada sesi ini, kita akan memperbarui indeks pengemasan lokal agar kita memiliki akses ke daftar paket terbaru. Setelah itu, kita dapat menginstal nginx:
sudo apt update
sudo apt install nginx
Langkah 2 – Menyesuaikan Firewall
Sebelum menguji Nginx, perangkat lunak firewall perlu disesuaikan untuk
mengizinkan akses ke layanan. Nginx mendaftarkan dirinya sendiri sebagai layanan dengan ufw pada saat instalasi, yang mempermudah untuk mengizinkan akses Nginx.
Buat daftar konfigurasi aplikasi yang mana ufw mengetahui cara bekerja sama dengannya dengan mengetik:
sudo ufw app list
Anda akan mendapat daftar profil aplikasi:
Output
Available applications:
Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
Seperti yang ditunjukkan oleh keluaran, ada tiga profil yang tersedia untuk Nginx:
• Nginx Full: Profil ini membuka port 80 (tidak terenkripsi) sekaligus port 443 (terenkripsi TLS/SSL)
• Nginx HTTP: Profil ini hanya membuka port 80 saja (tidak terenkripsi)
• Nginx HTTPS: Profil ini hanya membuka port 443 saja (terenkripsi TLS/SSL)
Anda disarankan untuk mengaktifkan profil yang paling ketat yang masih akan mengizinkan traffic yang telah dikonfigurasikan. Saat ini, kita hanya perlu mengizinkan traffic pada port 80.
Anda dapat mengaktifkan ini dengan mengetik:
sudo ufw allow 'Nginx HTTP'
Anda dapat memverifikasi perubahan dengan mengetik:
sudo ufw status
Keluaran akan mengindikasikan traffic HTTP mana yang diizinkan:
Output
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 – Memeriksa Server Web Anda
Pada akhir proses instalasi, Ubuntu memulai Nginx. Server web seharusnya sudah aktif dan berjalan.
Kita dapat memeriksa untuk memastikan layanan sedang 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) ...
Sebagaimana dikonfirmasi oleh keluaran ini, layanan telah berhasil dimulai. Namun, cara terbaik untuk menguji ini adalah dengan benar-benar meminta suatu halaman dari Nginx.
Anda dapat mengakses halaman Nginx untuk mengonfirmasi bahwa perangkat lunak berjalan dengan baik dengan bernavigasi ke alamat IP server Anda. Jika Anda tidak mengetahui alamat IP server Anda, Anda dapat menemukannya dengan menggunakan alat icanhazip.com, yang akan memberi Anda alamat IP publik Anda sebagaimana diterima dari lokasi lain di internet:
curl -4 icanhazip.com
Saat mengetahui alamat IP servernya, masukkan alamat itu ke dalam address-bar browser:
http://ip-server
Anda seharusnya akan menerima halaman Nginx default:
Jika Anda berada di laman ini, server Anda berjalan dengan benar dan siap untuk dikelola.
Langkah 4 – Mengelola Proses Nginx
Karena kini server web Anda sudah aktif dan berjalan, mari kita tinjau beberapa perintah pengaturan dasar.
Untuk menghentikan server web, ketik:
sudo systemctl stop nginx
Untuk memulai server web saat berhenti, ketik:
sudo systemctl start nginx
Untuk menghentikan lalu memulai lagi, ketik:
sudo systemctl restart nginx
Jika hanya membuat perubahan konfigurasi, Nginx seringkali dapat memuat ulang tanpa memutus koneksi. Untuk melakukan ini, ketik:
sudo systemctl reload nginx
Secara default, Nginx dikonfigurasikan untuk dimulai secara otomatis saat server melakukan boot. Jika ini bukan apa yang Anda inginkan, Anda dapat menonaktifkan ini dengan mengetik:
sudo systemctl disable nginx
Untuk mengaktifkan kembali layanan agar memulai saat boot, Anda dapat mengetik:
sudo systemctl enable nginx
Anda kini telah mempelajari perintah pengaturan dasar dan siap untuk mengkonfigurasi server untuk menjadi host lebih dari satu domain.
Langkah 5 – Menyiapkan Blok Server (Disarankan)
Ketika menggunakan server web Nginx, blok server (serupa dengan host virtual di Apache) dapat digunakan untuk mengenkapsulasi detail konfigurasi dan menjadi host untuk lebih dari satu domain dari satu server tunggal. Kita akan menyiapkan domain bernama nama-domain, tetapi Anda harus menggantinya dengan nama domain Anda sendiri.
Nginx pada Ubuntu memiliki satu blok server yang diaktifkan secara default, yang dikonfigurasi untuk menampilkan dokumen dari suatu direktori di /var/www/html. Meskipun ini berfungsi baik untuk situs tunggal, ini bisa menjadi sulit dijalankan jika Anda menjadi host dari beberapa situs. Alih-alih memodifikasi /var/www/html, mari kita buat suatu struktur direktori di dalam /var/www untuk situs nama-domain kita, dengan membiarkan /var/www/html sebagai direktori default yang akan ditampilkan jika permintaan browser klien tidak cocok dengan situs lain apa pun.
Buat direktori untuk nama-domain sebagai berikut, dengan menggunakan opsi -p untuk menciptakan direktori induk apa pun yang diperlukan:
sudo mkdir -p /var/www/nama-domain/html
Selanjutnya, tentukan kepemilikan direktori dengan variabel environtment $USER:
sudo chown -R $USER:$USER /var/www/nama-domain/html
Izin root web Anda seharusnya benar jika Anda belum mengubah nilai umask Anda, yang menetapkan izin berkas default. Untuk memastikan izin Anda benar dan
memperbolehkan pemilik untuk membaca, menulis, dan mengeksekusi berkas, sementara hanya memperbolehkan membaca dan mengeksekusi ke grup dan lainnya, Anda dapat memasukkan perintah berikut:
sudo chmod -R 755 /var/www/nama-domain
Selanjutnya, buat halaman index.html dengan menggunakan nano atau editor favorit Anda:
nano /var/www/nama-domain/html/index.html
Di dalamnya, tambahkan contoh HTML berikut:
/var/www/nama-domain/html/index.html
<html>
<head>
<title>Selamat Datang di Website Saya!</title>
</head>
<body>
<h1>Berhasil! Ini menunjukkan bahwa web server sudah berjalan.</h1>
</body>
</html>
Simpan dan tutup berkas dengan menekan CTRL + O (huruf o, bukan angka nol), lalu
ENTER kemudian tekan CTRL + X.
Agar Nginx menyajikan konten ini, maka diperlukan untuk menciptakan blok server dengan arahan yang benar. Alih-alih memodifikasi berkas konfigurasi default secara langsung, mari kita buat yang baru di /etc/nginx/sites-available/nama-domain:
sudo nano /etc/nginx/sites-available/nama-domain
Pastekan di blok konfigurasi berikut, yang serupa dengan yang default, tetapi diperbarui untuk nama domain dan direktori baru kita:
/etc/nginx/sites-available/nama-domain
server {
listen 80;
listen [::]:80;
root /var/www/nama-domain/html;
index index.html index.htm index.nginx-debian.html index.php;
server_name nama-domain www.nama-domain;
location / {
try_files $uri $uri/ =404;
} }
Perhatikan bahwa kita telah memperbarui konfigurasi root ke direktori baru kita, dan
server_name ke nama domain kita.
Selanjutnya, mari kita mengaktifkan berkas dengan menciptakan tautan darinya ke direktori sites-enabled, yang dibaca Nginx selama memulai:
sudo ln -s /etc/nginx/sites-available/nama-domain /etc/nginx/sites-enabled/
Dua blok server sekarang telah diaktifkan dan dikonfigurasi untuk merespons permintaan berdasarkan arahan listen dan server_name:
• nama-domain: Akan merespons permintaan untuk nama-domain dan
www.nama-domain.
• default: Akan merespons permintaan apa pun pada port 80 yang tidak cocok dengan dua blok lainnya.
Untuk menghindari masalah memori hash bucket yang dapat muncul dari
penambahan nama server tambahan, maka diperlukan untuk menyesuaikan satu nilai dalam berkas /etc/nginx/nginx.conf. Buka berkas:
sudo nano /etc/nginx/nginx.conf
Cari direktif server_names_hash_bucket_size dan hapus simbol # (pagar) untuk menghapus komentar pada baris itu. Jika Anda menggunakan nano, Anda dapat dengan cepat mencari kata-kata di dalam berkas dengan menekan CTRL + W.
/etc/nginx/nginx.conf ...
http { ...
server_names_hash_bucket_size 64;
...
} ...
Simpan dan tutup berkas saat Anda sudah selesai.
Selanjutnya, uji untuk memastikan bahwa tidak ada kesalahan sintaks pada berkas Nginx:
sudo nginx -t
Jika tidak ada masalah apa pun, restart Nginx untuk mengaktifkan perubahan yang telah dibuat:
sudo systemctl restart nginx
Nginx sekarang seharusnya menyajikan nama domain Anda. Anda dapat menguji ini dengan bernavigasi ke http://nama-domain.
Langkah 6 – Membiasakan Diri dengan Berkas dan Direktori Penting Nginx
Setelah Anda mengetahui cara mengelola layanan Nginx, Anda perlu waktu beberapa menit untuk membiasakan diri dengan beberapa direktori dan berkas penting.
Isi
• /var/www/html: Konten web yang sebenarnya, yang secara default hanya terdiri dari halaman Nginx default yang Anda lihat sebelumnya, disajikan dari direktori /var/www/html. Ini dapat diubah dengan mengubah berkas
konfigurasi Nginx.
Konfigurasi Server
• /etc/nginx: Direktori konfigurasi Nginx. Semua berkas konfigurasi Nginx berada di sini.
• /etc/nginx/nginx.conf: Berkas konfigurasi Nginx utama. Ini dapat diubah isinya untuk membuat perubahan pada konfigurasi global Nginx.
• /etc/nginx/sites-available/: Direktori tempat blok server per situs dapat disimpan. Nginx tidak akan menggunakan berkas konfigurasi yang ditemukan dalam direktori ini kecuali berkas tersebut ditautkan ke direktori sites- enabled. Biasanya, semua konfigurasi blok server dilakukan dalam direktori ini, lalu diaktifkan dengan menautkannya ke direktori lain.
• /etc/nginx/sites-enabled/: Direktori tempat blok server yang diaktifkan per situs yang disimpan. Biasanya, ini dibuat dengan menghubungkan ke berkas konfigurasi yang ditemukan dalam direktori sites-available.
Log Server
• /var/log/nginx/access.log: Setiap permintaan ke server web Anda direkam dalam berkas log ini kecuali Nginx dikonfigurasi untuk tidak melakukannya.
• /var/log/nginx/error.log: Setiap kesalahan Nginx akan direkam dalam log ini.
Kesimpulan
Kini server web Anda telah terinstal, Anda memiliki banyak pilihan untuk tipe konten yang dilayani dan teknologi yang Anda ingin gunakan untuk menciptakan
pengalaman yang lebih banyak.