Server block Nginx memungkinkan Anda untuk menjalankan lebih dari satu situs web pada 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 berbeda untuk setiap situs dan banyak lagi.
Dalam tutorial ini, kami akan menunjukkan cara mengatur server blocks Nginx di Debian 9.
Prasyarat
Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan dengan tutorial ini:
- Nama domain menunjuk ke IP server publik Anda. Dalam tutorial ini kita akan menggunakan
example.com
. - Nginx sudah terinstal di server debian 9.
- Masuk sebagai pengguna dengan hak istimewa sudo.
Dalam beberapa dokumentasi, Anda akan melihat server block dirujuk sebagai Virtual host. Virtual host adalah istilah Apache.
Buat Struktur Direktori
Root document adalah direktori tempat file situs web untuk nama domain disimpan dan disajikan sebagai respons terhadap permintaan.
Root document dapat berupa direktori apa saja di server Debian Anda. Dalam panduan ini kita akan menggunakan struktur direktori berikut:
/var/www/ ├── domain1.com │ └── public_html ├── domain2.com │ └── public_html ├── domain3.com │ └── public_html
Kita akan membuat direktori terpisah untuk setiap domain yang akan di-host di server kami di dalam direktori /var/www
. Dalam setiap direktori ini, kami akan membuat direktori public_html yang akan menyimpan file situs web.
Mulai dengan membuat direktori root untuk domain example.com
:
sudo mkdir -p /var/www/example.com/public_html
Selanjutnya, buat file index.html
di dalam direktori root dokumen domain.
sudo nano /var/www/example.com/public_html/index.html
Buka file dan tempelkan baris berikut:
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Selamat Datang</title> </head> <body> <center><h1>Contoh Server Block di Debian 9 Berhasil!</h1></center> </body> </html>
Untuk menghindari masalah izin, ubah kepemilikan direktori root dokumen domain ke pengguna Nginx (www-data
) dengan menggunakan perintah chown berikut :
sudo chown -R www-data: /var/www/example.com
Buat Server Block
Secara default pada sistem Debian, file konfigurasi Nginx Server Block disimpan di direktori /etc/nginx/sites-available
, yang diaktifkan melalui symbolic links ke direktori /etc/nginx/sites-enabled/
.
Buka editor pilihan Anda dan buat file blok server berikut
sudo nano /etc/nginx/sites-available/example.com.conf
server { 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 sangat disarankan untuk menggunakan nama domain.
Aktifkan file blok server baru dengan membuat symbolic link dari file ke direktori sites-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Uji konfigurasi Nginx untuk melihat semua sintaks sudah benar:
sudo nginx -t
Jika tidak ada kesalahan, hasilnya akan terlihat seperti ini:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Restart layanan Nginx agar perubahan diterapkan:
sudo systemctl restart nginx
Akhirnya untuk memverifikasi blok server berfungsi seperti yang diharapkan, buka http://example.com
di browser pilihan Anda, dan Anda akan melihat sesuatu seperti ini:
Kesimpulan
Anda telah belajar cara membuat konfigurasi server block di Nginx untuk meng-host beberapa domain pada satu server Debian 9.
Anda dapat mengulangi langkah-langkah yang kami uraikan di atas dan membuat server block tambahan untuk semua domain Anda.