Cara Mengonfigurasi Virtual Hosts di Nginx di Ubuntu
Mengonfigurasi virtual host di Nginx memungkinkan Anda untuk menghosting beberapa situs web di satu server, dengan masing-masing situs web memiliki nama domainnya sendiri. Virtual host Nginx dikonfigurasi menggunakan “blok server” yang mendefinisikan pengaturan untuk setiap situs web. Panduan ini akan memandu Anda melalui pengaturan virtual host di server Ubuntu dengan Nginx.
1. Prasyarat
- Nginx Terinstal: Pastikan Nginx terinstal di server Anda. Jika tidak, instal dengan:
sudo apt updatesudo apt install nginx - Nama Domain: Miliki nama domain yang ingin Anda host yang diarahkan ke alamat IP server Anda. Anda dapat memodifikasi file /etc/hosts Anda untuk tujuan pengujian.
2. Siapkan Direktori untuk Setiap Situs Web
Setiap situs web harus memiliki direktori sendiri untuk menyimpan file situs web. Mari kita buat direktori untuk dua contoh situs web, example1.com dan example2.com.
sudo mkdir -p /var/www/example1.com/html sudo mkdir -p /var/www/example2.com/htmlBerikan kepemilikan direktori ini kepada pengguna Nginx (www-data) untuk memastikan Nginx memiliki izin yang diperlukan.
sudo chown -R www-data:www-data /var/www/example1.com/html sudo chown -R www-data:www-data /var/www/example2.com/htmlAtur izin yang sesuai:
sudo chmod -R 755 /var/www3. Buat Konten Contoh
Untuk menguji virtual host, tambahkan file HTML contoh untuk setiap situs.
Example1.com:
echo "<h1>Welcome to Example1.com!</h1>" | sudo tee /var/www/example1.com/html/index.htmlExample2.com:
echo "<h1>Welcome to Example2.com!</h1>" | sudo tee /var/www/example2.com/html/index.html4. Buat File Konfigurasi Virtual Host
Sekarang, kita akan membuat file konfigurasi blok server (virtual host) untuk setiap situs web. Nginx menyimpan file konfigurasi ini di direktori /etc/nginx/sites-available/.
Langkah 1: Buat Konfigurasi untuk Example1.com
Buat file konfigurasi baru untuk example1.com:
sudo nano /etc/nginx/sites-available/example1.comTambahkan konfigurasi berikut:
server {
listen 80;
server_name example1.com www.example1.com;
root /var/www/example1.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}Langkah 2: Buat Konfigurasi untuk Example2.com
Buat file konfigurasi untuk example2.com:
sudo nano /etc/nginx/sites-available/example2.comTambahkan konfigurasi berikut:
server {
listen 80;
server_name example2.com www.example2.com;
root /var/www/example2.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}5. Aktifkan Virtual Host
Nginx menggunakan tautan simbolik untuk mengaktifkan virtual host. Tautkan file konfigurasi dari sites-available ke sites-enabled:
sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/6. Uji Konfigurasi
Untuk memastikan tidak ada kesalahan sintaks dalam konfigurasi Anda, jalankan:
sudo nginx -tJika semuanya benar, Anda akan melihat pesan konfirmasi. Jika ada kesalahan, Nginx akan menampilkan detail untuk membantu Anda memecahkan masalah.
7. Mulai Ulang Nginx
Setelah mengonfirmasi konfigurasi, mulai ulang Nginx untuk menerapkan perubahan:
sudo systemctl restart nginx8. Akses Situs Web
Jika nama domain diarahkan ke server Anda, Anda sekarang seharusnya dapat mengakses setiap situs dengan mengunjungi:
- http://example1.com
- http://example2.com
Untuk pengujian lokal, Anda dapat mengedit file /etc/hosts Anda untuk memetakan nama domain ke alamat IP server Anda. Tambahkan entri seperti:
127.0.0.1 example1.com 127.0.0.1 example2.comSimpan dan tutup file, lalu coba akses situs di browser Anda.
9. Mengaktifkan HTTPS untuk Setiap Situs (Opsional)
Untuk koneksi yang aman, Anda dapat mengatur sertifikat SSL menggunakan Let’s Encrypt. Untuk mengaktifkan HTTPS:
Instal certbot:
sudo apt install certbot python3-certbot-nginxJalankan perintah berikut untuk mendapatkan dan mengonfigurasi sertifikat SSL untuk setiap domain:
sudo certbot --nginx -d example1.com -d www.example1.com sudo certbot --nginx -d example2.com -d www.example2.comIkuti petunjuk, dan Certbot akan secara otomatis mengatur HTTPS dalam konfigurasi Nginx Anda.
Kesimpulan
Dengan mengatur virtual host di Nginx di Ubuntu, Anda dapat menghosting beberapa situs web di satu server, masing-masing dengan konfigurasi dan kontennya sendiri. Pengaturan ini efisien dan dapat diskalakan, menjadikan Nginx pilihan yang sangat baik untuk menghosting beberapa situs di server yang sama.
