15%

Alexhost mengabulkan keinginan Anda

Ikuti survei dan memenangkan hadiah

MERRY15
Memulai
31.10.2024

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 update
    sudo 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/html

Berikan 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/html

Atur izin yang sesuai:

sudo chmod -R 755 /var/www

3. 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.html

Example2.com:

echo "<h1>Welcome to Example2.com!</h1>" | sudo tee /var/www/example2.com/html/index.html

4. 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.com

Tambahkan 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.com

Tambahkan 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 -t

Jika 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 nginx

8. 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.com

Simpan 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-nginx

Jalankan 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.com

Ikuti 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.

15%

Alexhost mengabulkan keinginan Anda

Ikuti survei dan memenangkan hadiah

MERRY15
Memulai