Blok server adalah arahan Nginx yang mendefinisikan pengaturan untuk domain tertentu, memungkinkan Anda menjalankan lebih dari satu situs web di satu server. Untuk setiap situs web, Anda dapat mengatur root dokumen situs (direktori yang berisi file situs web), membuat kebijakan keamanan terpisah, menggunakan sertifikat SSL yang berbeda, dan banyak lagi.
Artikel ini menjelaskan cara mengatur blok server Nginx di Ubuntu 20.04.
Prasyarat #
Pastikan Anda telah memenuhi persyaratan berikut sebelum melanjutkan:
- Nama domain menunjuk ke IP server publik Anda.
- Nginx terinstal di sistem Ubuntu Anda.
- Anda masuk sebagai root atau pengguna dengan hak istimewa sudo.
Dalam beberapa artikel, istilah “Server Blocks” disebut sebagai “Virtual host”. Host virtual adalah istilah Apache.
Membuat Struktur Direktori #
Akar dokumen adalah direktori tempat file situs web untuk nama domain disimpan dan disajikan sebagai tanggapan atas permintaan. Anda dapat mengatur root dokumen ke lokasi mana pun yang Anda inginkan. Dalam contoh ini, kita akan menggunakan struktur direktori berikut:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
Setiap domain yang dihosting di server akan memiliki root dokumen yang disetel ke /var/www/<domain_name>/public_html
.
Mulailah dengan membuat direktori root untuk domain:
sudo mkdir -p /var/www/domain1.com/public_html
Kami juga akan membuat index.html
file di dalam direktori root dokumen domain yang akan ditampilkan saat Anda mengunjungi domain di browser Anda:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
Karena perintah di atas dijalankan sebagai pengguna sudo, file dan direktori yang baru dibuat dimiliki oleh root. Untuk menghindari masalah izin, ubah kepemilikan direktori root dokumen domain dan semua file dalam direktori ke pengguna Nginx (www-data
) :
sudo chown -R www-data: /var/www/domain1.com
Membuat Blok Server #
Pada sistem Ubuntu, file konfigurasi blok server Nginx terletak di /etc/nginx/sites-available
direktori. Mereka dapat diaktifkan dengan membuat tautan simbolis ke /etc/nginx/sites-enabled
direktori, yang dibaca Nginx selama startup.
Buka editor teks Anda dan buat file blok server berikut:
/etc/nginx/sites-available/example.comserver {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public_html;
index index.html;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
}
server_name
:Domain yang harus cocok untuk konfigurasi blok server ini.root
:Direktori tempat Nginx akan melayani file domain.access_log
,error_log
:Menentukan lokasi untuk file log.
File konfigurasi dapat diberi nama apa pun yang Anda inginkan, tetapi biasanya, yang terbaik adalah menggunakan nama domain.
Untuk mengaktifkan file blok server baru, buat tautan simbolis dari file ke sites-enabled
direktori, yang dibaca Nginx saat startup:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Uji konfigurasi Nginx untuk sintaks yang benar:
sudo nginx -t
Jika tidak ada error maka outputnya akan seperti ini:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mulai ulang layanan Nginx agar perubahan diterapkan:
sudo systemctl restart nginx
Terakhir, untuk memverifikasi bahwa blok server berfungsi seperti yang diharapkan, buka http://example.com
di browser pilihan Anda, dan Anda akan melihat sesuatu seperti ini: