GNU/Linux >> Belajar Linux >  >> Linux

Cara Membuat Virtual Host Nginx (Blok Server)

Blok server, sering disebut sebagai host virtual di Nginx, memungkinkan Anda menghosting beberapa situs di satu server. Berikut cara menggunakannya.

Daftar Isi

  • Apa itu Host Virtual?
  • Bagaimana Cara Kerja Virtual Host?
  • Cara Membuat Host Virtual Nginx (Blok Server)
    • 1. Membuat Struktur Direktori
    • 2. Membuat Halaman Pengujian untuk Setiap Situs Web
    • 3. Buat Nginx Virtual Host (Blok Server)
    • 4. Aktifkan Nginx Virtual Host (Blok Server)
    • 5. Menguji Host Virtual (Opsional)
    • 6. Nonaktifkan Nginx Virtual Host (Blok Server)
  • Kesimpulan

Nginx dirancang untuk menangani banyak domain pada satu server dan alamat IP. Dengan kata lain, Jika Anda memiliki satu server yang digunakan sebagai server web dan hanya mengalokasikan satu alamat IP, maka untuk menjalankan lebih dari satu situs web atau domain di server tersebut, Anda menggunakan virtual host Nginx.

Sebelum memulai tutorial ini, Anda harus menginstal Nginx. Untuk mempelajari cara menginstalnya, baca panduan luar biasa kami tentang Menginstal Server Web Nginx di Linux.

Apa itu Host Virtual?

Jika Anda tidak yakin apa itu virtual host, izinkan saya menjelaskan. Ini adalah istilah Server HTTP Apache; namun, ini juga biasa digunakan oleh pengguna Nginx. Istilah yang tepat untuk Nginx adalah server block .

Host virtual adalah metode untuk menghosting beberapa nama domain di satu server.

Bagaimana Cara Kerja Virtual Host?

Ketika Anda memulai perangkat lunak server web seperti Nginx di server, server web itu akan mengikat dirinya sendiri ke satu atau lebih port jaringan. Biasanya, untuk server web, itu adalah port 80 dan 443.

Ketika komputer mengunjungi situs web, ia akan mengirim permintaan melalui internet ke server, dan server akan menerima permintaan itu. Jadi, hal pertama yang akan dilakukan server adalah melihat port tempat permintaan dikirim ke port tujuan.

Selanjutnya, port tujuan akan digunakan untuk menentukan aplikasi apa yang akan meneruskan informasi tersebut. Itu berarti server web Anda hanya dapat memiliki satu aplikasi yang menerima permintaan.

Tetapi bagaimana jika Anda ingin meng-host dua situs web berbeda di server web yang sama? Server perlu memberi tahu kapan sebuah paket datang meminta situs web. Kemudian, perlu mengetahui situs web apa yang diminta untuk mengetahui informasi apa yang harus dikirim kembali.

Tidak peduli situs web apa yang diminta, server tidak dapat menggunakan nomor port saja sebagai port tujuan untuk menentukan situs web mana yang coba diakses oleh klien. Yang akan dilakukan server hanyalah mengatakan, "Saya mengirim permintaan ini ke Nginx." Dari sana, Nginx harus memutuskan apa yang akan dikirim kembali.

Nginx memiliki konsep yang disebut server block . Blok server dapat digunakan untuk dua hal yang berbeda.

Mereka dapat digunakan untuk melayani situs web lain berdasarkan alamat IP yang diminta, atau mereka dapat digunakan untuk melayani situs web yang berbeda berdasarkan nama domain yang digunakan .

Jadi ketika Anda mengetikkan nama situs web seperti www.example.com dan ketika server menerimanya, Nginx dapat melihat ke dalam header HTTP apa nama server yang diminta dan dari sana, berdasarkan host virtual yang dikonfigurasi, untuk membuat keputusan direktori mana yang menyimpan file situs web, dan untuk mengembalikan respons yang benar ke klien berdasarkan nama server.

Cara Membuat Host Virtual Nginx (Blok Server)

Ada dua direktori di mana kita dapat membuat dan menyimpan file konfigurasi virtual host kita. Keduanya terletak di dalam /etc/nginx direktori. Nama kedua direktori tersebut adalah sites-available dan sites-enabled .

  • /etc/nginx/sites-available :Direktori tempat masing-masing host virtual (situs web) ditentukan. Ingat bahwa Nginx tidak akan menggunakan file konfigurasi yang ditemukan di direktori ini kecuali file tersebut ditautkan ke /etc/nginx/sites-enabled direktori.
  • /etc/nginx/sites-enabled :Daftar host virtual (situs web) yang aktif dilayani oleh Nginx.

Apakah Anda mungkin bertanya-tanya mengapa kami membutuhkan dua direktori untuk menyimpan file host virtual kami? Manfaat utama dari ini adalah kita dapat membuat banyak file host virtual di server Nginx kita, tetapi kita dapat mengaktifkannya sesuai kebutuhan kita.

Kami akan membuat file host virtual untuk meng-host beberapa situs dengan beberapa domain di server Nginx kami. Nama domainnya adalah website1.com dan website2.com .

1. Membuat Struktur Direktori

Hal pertama yang perlu kita lakukan adalah membuat direktori untuk setiap virtual host untuk menyimpan konten situs web yang berbeda. Kami akan menempatkan direktori di /var/www , dan kami akan menamainya setelah setiap nama domain.

Jalankan perintah berikut untuk membuat direktori:

sudo mkdir -p /var/www/website1.com
sudo mkdir -p /var/www/website2.com

 -p tandai pada perintah di atas memberi tahu mkdir untuk membuat direktori induk yang diperlukan.

2. Membuat Halaman Pengujian untuk Setiap Situs Web

Selanjutnya, untuk tujuan demonstrasi, mari buat index.html file di dalam direktori root dokumen domain sehingga kita akan memiliki sesuatu untuk ditampilkan.

sudo vim /var/www/website1.com/index.html

Rekatkan baris berikut:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Welcome to Website 1!</title>
    </head>
    <body>
        <h1>Welcome to Website 1!</h1>
    </body>
</html>

Sekarang ulangi langkah di atas untuk website2.com.

sudo vim /var/www/website2.com/index.html

Rekatkan baris berikut:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Welcome to Website 2!</title>
    </head>
    <body>
        <h1>Welcome to Website 2!</h1>
    </body>
</html>

3. Buat Nginx Virtual Host (Blok Server)

Untuk membuat file host virtual Nginx di dalam sites-available direktori, jalankan perintah berikut:

sudo vim /etc/nginx/sites-available/website1.com

Penting untuk dicatat bahwa file konfigurasi virtual host Nginx dapat diberi nama apa pun yang Anda inginkan, tetapi biasanya, menggunakan nama domain adalah praktik yang baik.

Sekarang, rekatkan konten berikut di file host virtual Anda:

server {
    listen 80;
    server_name website1.com www.website1.com;
    root /var/www/website1.com;

    access_log /var/log/nginx/website1-access.log;
    error_log /var/log/nginx/website1-error.log;
}

Untuk membuat semuanya lebih transparan, mari kita uraikan sintaks ini. Pertama, inilah arti setiap parameter:

  • listen :Tentukan port mana server Nginx untuk mendengarkan koneksi.
  • server_name :Di sini, kami mencocokkan permintaan untuk domain kami. Arahan tersebut menyimpan daftar nama domain yang ingin kami gunakan untuk mengakses situs kami.
  • root : Lokasi direktori tempat kami menyimpan file situs web kami.
  • error_log :Jalur lengkap ke file log tempat kami menyimpan semua log kesalahan host virtual ini.
  • access_log :Jalur lengkap ke file log tempat kami menyimpan semua log akses host virtual ini.

Sekarang kita dapat menggunakan konfigurasi host virtual awal kita sebagai dasar untuk file kedua kita. Cukup salin untuk membuat file baru:

sudo cp /etc/nginx/sites-available/website1.com /etc/nginx/sites-available/website2.com

Buka file baru dan sesuaikan agar sesuai dengan yang kedua (website2.com ) nama domain:

sudo vim /etc/nginx/sites-available/website2.com
server {
    listen 80;
    server_name website2.com www.website2.com;
    root /var/www/website2.com;

    access_log /var/log/nginx/website2-access.log;
    error_log /var/log/nginx/website2-error.log;
}

4. Aktifkan Nginx Virtual Host (Blok Server)

Hal terakhir yang perlu kita lakukan sebelum pengujian mengaktifkan host virtual. Kita dapat melakukannya dengan membuat tautan simbolis dari file ke sites-enabled direktori:

sudo ln -s /etc/nginx/sites-available/website1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/website2.com /etc/nginx/sites-enabled/

Seperti yang Anda lihat dari gambar di bawah, file-file ini sekarang ditautkan ke sites-enabled direktori.

Sebelum kita melanjutkan, mari kita periksa kembali apakah tidak ada kesalahan ketik. Uji konfigurasi Nginx untuk sintaks yang benar:

sudo nginx -t

Dan terakhir, jika tidak ada masalah yang ditemukan, mulai ulang layanan Nginx untuk menerapkan perubahan:

sudo systemctl restart nginx

5. Menguji Host Virtual (Opsional)

Untuk menguji host virtual Nginx, pertama-tama kita harus mengarahkan catatan nama domain kita ke alamat IP server. Dalam kasus kami, alamat IP server adalah 192.168.122.101 .

Jika Anda menggunakan Linux, buka /etc/hosts file di PC desktop Anda (yang akan digunakan untuk melakukan pengujian) menggunakan perintah di bawah ini:

sudo vim /etc/hosts

Dan tambahkan nama domain virtual satu per satu, seperti yang ditunjukkan di bawah ini.

Simpan dan tutup file setelah Anda selesai. Dengan cara ini, kami dapat menguji domain yang bukan milik kami.

Sekarang buka browser Anda dan masukkan www.website1.com dan www.website2.com satu per satu. Anda akan melihat halaman indeks dari kedua domain, masing-masing.

Anda telah berhasil mengonfigurasi dua domain independen dengan Nginx.

6. Nonaktifkan Nginx Virtual Host (Blok Server)

Untuk menonaktifkan virtual host di Nginx, kita harus menghapus symlink yang telah kita buat saat mengaktifkan file virtual host. Misalnya, untuk menonaktifkan website2.com , kita harus menjalankan perintah berikut:

sudo rm -rf /etc/nginx/sites-enabled/website2.com

Untuk menerapkan perubahan, kita harus me-restart server Nginx:

sudo systemctl restart nginx

Kesimpulan

Artikel ini menunjukkan cara membuat host virtual Nginx (blok server) dan menghosting banyak domain pada satu server Linux. Untuk membuat host virtual untuk domain lain, ulangi langkah yang sama. Tapi, tentu saja, Nginx bisa melakukan lebih banyak lagi.

Selain itu, jika Anda ingin tahu cara mengamankan situs web Anda dengan sertifikat SSL gratis, saya sarankan untuk membaca panduan kami Let's Encrypt:Dapatkan Sertifikat SSL Gratis Menggunakan Certbot.

Untuk informasi lebih lanjut tentang menyiapkan server Nginx, Anda dapat merujuk ke dokumentasi resmi Nginx.

Terima kasih sudah membaca! Saya harap artikel ini bermanfaat bagi Anda dan Anda dapat mengatur host virtual. Jangan ragu untuk meninggalkan komentar jika Anda memiliki pertanyaan.


Linux
  1. Cara Membuat Cadangan

  2. Bagaimana Cara Membuat Output Virtual Di Pulseaudio?

  3. Host virtual Nginx – Blok server Nginx

  1. Cara Mengatur Virtual Host Nginx (Blok Server) di CentOS 7

  2. Cara Mengarahkan HTTP ke HTTPS di Nginx

  3. Cara Membuat Apache Virtual Host di CentOS 7

  1. Cara membuat Jaringan Virtual di Azure Cloud

  2. Cara Membuat Host Virtual Di Server Apache Untuk Meng-host Banyak Situs Web

  3. Cara Meng-host Situs Web di Server Web NGINX