Blok Server Nginx memungkinkan Anda menjalankan lebih dari satu situs web di satu mesin. Dengan Server Blocks, Anda dapat menentukan root dokumen situs (direktori yang berisi file situs web), membuat kebijakan keamanan terpisah untuk setiap situs, menggunakan sertifikat SSL yang berbeda untuk setiap situs, dan banyak lagi.
Dalam tutorial ini, kami akan menunjukkan cara mengatur blok server Nginx di Debian 9.
Prasyarat #
Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan tutorial ini:
- Nama domain yang menunjuk ke IP server publik Anda. Kami akan menggunakan
example.com
. - Nginx terpasang.
- Anda masuk sebagai root atau pengguna dengan hak istimewa sudo.
Server Blocks
disebut sebagai Virtual host
.Sebuah host virtual adalah istilah Apache. Buat Struktur Direktori #
Akar dokumen adalah direktori tempat file situs web untuk nama domain disimpan dan disajikan sebagai tanggapan atas permintaan. Akar dokumen dapat berupa direktori apa pun di server Debian Anda.
Kami akan menggunakan struktur direktori berikut:
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
Kami akan membuat direktori terpisah untuk setiap domain yang akan dihosting di server di dalam /var/www
direktori. Dalam setiap direktori ini, kami akan membuat public_html
direktori yang akan menyimpan file situs domain.
Mulailah dengan membuat direktori root untuk domain example.com
:
sudo mkdir -p /var/www/example.com/public_html
Selanjutnya, buat index.html
file di dalam direktori root dokumen domain.
sudo nano /var/www/example.com/public_html/index.html
Buka file dan rekatkan baris berikut:
/var/www/example.com/public_html/index.html<!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>
Untuk menghindari masalah izin, ubah kepemilikan direktori root dokumen domain ke pengguna Nginx (www-data
):
sudo chown -R www-data: /var/www/example.com
Buat Blok Server #
Secara default pada sistem Debian, server Nginx memblokir file konfigurasi yang disimpan di /etc/nginx/sites-available
direktori, yang diaktifkan melalui tautan simbolis ke /etc/nginx/sites-enabled/
direktori.
Buka editor pilihan Anda dan buat file blok server berikut:
sudo nano /etc/nginx/sites-available/example.com.conf
/etc/nginx/sites-available/example.com.confserver {
listen 80;
listen [::]:80;
root /var/www/example.com/public_html;
index index.html;
server_name example.com www.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
try_files $uri $uri/ =404;
}
}
Anda dapat memberi nama file konfigurasi sesuka Anda, tetapi biasanya yang terbaik adalah menggunakan nama domain.
Aktifkan file blok server baru dengan membuat tautan simbolis dari file ke sites-enabled
direktori:
sudo ln -s /etc/nginx/sites-available/example.com.conf /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: