Artikel ini menunjukkan cara membuat host virtual NGINX® yang melayani beberapa domain web.
Buat tata letak untuk setiap domain
Contoh ini membuat dua domain, domain1.com
dan domain2.com
.
Karena izin default hanya memungkinkan Anda, demo
pengguna, untuk menelusuri folder rumah Anda, Anda perlu memberikan NGINX akses ke folder ini juga dengan menjalankan perintah berikut:
chmod 755 /home/demo
Anda sekarang dapat membuat tata letak dasar untuk setiap domain. Di home
. Anda direktori, buat public_html
folder dengan menjalankan perintah berikut:
mkdir /home/demo/public_html
Untuk setiap domain yang ingin Anda host, buat folder dengan kumpulan subfolder standar, seperti yang ditunjukkan pada contoh berikut:
mkdir -p /home/demo/public_html/domain1.com/{public,private,,backup}
mkdir -p /home/demo/public_html/domain2.com/{public,private,log,backup}
Perintah ini membuat folder public
, private
, log
, dan backup
foreach domain Anda.log
Tambahkan konten publik untuk situs web di domain1.com
Contoh ini membuat file HTML yang sangat sederhana di folder publik yang memungkinkan Anda memeriksa dengan cepat apakah virtual host berfungsi.
Jalankan perintah berikut untuk menambahkan konten untuk domain1.com
:
nano /home/demo/public_html/domain1.com/public/index.html
Masukkan kode yang mirip dengan contoh berikut ke dalam file:
<html>
<head>
<title>domain1.com</title>
</head>
<body>
<h1>domain1.com</h1>
</body>
</html>
Ulangi proses tersebut sehingga Anda memiliki file indeks HTML yang serupa untuk domain2.com
.
Catatan :Pastikan Anda mengubah konten di index.html file untuk menampilkan domain2.com
dan bukan domain1.com
.
Tata letak host virtual
Artikel ini menggunakan tata letak gaya CentOS® (yang menggunakan conf.d
direktoriuntuk menyimpan file konfigurasi Anda) saat membuat host virtual. Anda mungkin juga memiliki tata letak ini jika Anda menginstal NGINX dengan menggunakan pengelola paket atau dari sumber.
Tambahkan host virtual Anda ke file virtual
Edit file virtual untuk menambahkan domain1.com
dengan menjalankan perintah berikut:
sudo nano /etc/nginx/conf.d/virtual.conf
Catatan :Pastikan Anda menyesuaikan jalur sesuai dengan penginstalan Anda.
Jika Anda menginstal dari sumber, Anda harus memasukkan jalur berikut:
sudo nano /usr/local/nginx/conf/conf.d/virtual.conf
Tambahkan kode berikut ke file:
server {
listen 80;
server_name www.domain1.com;
rewrite ^/(.*) https://domain1.com/$1 permanent;
}
server {
listen 80;
server_name domain1.com;
access_log /home/demo/public_html/domain1.com/log/access.log;
error_log /home/demo/public_html/domain1.com/log/error.log;
location / {
root /home/demo/public_html/domain1.com/public/;
index index.html;
}
}
Modul server pertama dalam file adalah aturan penulisan ulang sederhana yang mengarahkan pengunjung ke domain1.com
dari www.domain1.com
.
Modul server kedua memiliki informasi yang sangat mendasar, termasukserver_name
, yang merupakan nama domain yang ingin Anda layani.
Kemudian, kode tersebut mendefinisikan lokasi log sehingga Anda dapat dengan mudah menemukannya. Terakhir, kode tersebut menetapkan root server dan file indeks.
Muat ulang NGINX
Untuk mengaktifkan situs Anda, muat ulang NGINX dengan menjalankan perintah berikut:
sudo /etc/init.d/nginx reload
Melihat situs web Anda
Navigasikan ke domain Anda dengan menempelkan URL berikut ke bilah navigasi browser web Anda:
https://www.domain1.com
Anda akan melihat halaman web pengujian sederhana yang menampilkan informasi diindex.html berkas.
Periksa log
Pada langkah sebelumnya, Anda menambahkan kode ke virtual.conf file yang mengonfigurasi lokasi log. Jalankan perintah berikut untuk memeriksa apakah sekarang ada log di lokasi tersebut:
ls /home/demo/public_html/domain1.com/log/
...
access.log error.log
Ulangi untuk domain tambahan
Ulangi proses yang sama untuk host virtual Anda berikutnya, domain2.com
.