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 Ubuntu 20.04.
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 Ubuntu 20.04.
- Masuk sebagai root atau user dengan hak 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 Ubuntu Anda. Dalam panduan ini kita akan menggunakan struktur direktori berikut:
/var/www/ ├── example.com │ └── public_html ├── example2.com │ └── public_html ├── example3.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 dengan text editor nano
.
sudo nano /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 Nginx (www-data
) dengan menggunakan perintah chown berikut :
sudo chown -R www-data: /var/www/example.com
Buat Blok Server
Secara default pada sistem Ubuntu, server Nginx memblok file konfigurasi 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
copy dan paste konten berikut
server { 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
: Isi dengan Domain yang ingin anda buat di nginx.root
: Direktori dari file domain.access_log
,error_log
: lokasi untuk menyimpan file log dari nginx.
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 Ubuntu 20.04.
Anda dapat mengulangi langkah-langkah yang kami uraikan di atas dan membuat server block tambahan untuk semua domain Anda.