Di Nginx, server memblokir digunakan untuk mendefinisikan informasi domain tertentu. Ini membantu untuk meng-host beberapa domain atau situs web. Setiap blok berisi informasi domain tertentu seperti root dokumen, SSL, port, dan lainnya. Blok server Nginx mirip dengan host virtual Apache.
Dalam tutorial ini, kita mempelajari cara mengonfigurasi blok server Nginx di Ubuntu 18.04/20.04 .
Prasyarat
Membutuhkan instance Ubuntu 18.04/20.04. Instance harus sudah menginstal Nginx. Memerlukan pengguna dengan akses sudo.
Langkah 1. Buat Struktur Direktori
Akar dokumen adalah direktori tempat file situs web untuk nama domain disimpan dan disajikan sebagai tanggapan atas permintaan. Kita dapat mengatur root dokumen ke lokasi mana pun yang kita inginkan, tetapi dalam artikel ini, kita akan menggunakan struktur direktori berikut:
/var/www/
├── domain1.com
│ └── images
│ └── index.html
│ └── style.css
├── domain2.net
│ └── images
│ └── index.html
│ └── style.css
Pada dasarnya, kami akan membuat direktori terpisah untuk setiap domain yang ingin kami host di server kami di dalam /var/www
direktori.
Mari buat direktori root untuk domain kita:
$ sudo mkdir -p /var/www/domain1.com
Untuk tujuan pengujian, kami akan membuat indeks.html, file style.css, dan direktori gambar di dalam direktori root dokumen domain.
$ cd /var/www/domain1.com/
/var/www/domain1.com$ sudo mkdir images index.html style.css
Buka editor kami dan buat file demo:
/var/www/domain1.com/index.html<!DOCTYPE html> <html lang="en" dir="ltr">
<head> <meta charset="utf-8">
<title>Welcome to domain1.com</title> <link rel="stylesheet" href="style.css"/>
</head>
<body> <h1 style="color:green;text-align:center;">Success! domain1.com home page!</h1>
</body>
</html>
Di sini kita menjalankan perintah sebagai sudo
pengguna dan file serta direktori yang baru dibuat dimiliki oleh root
pengguna.
Untuk menghindari masalah izin, kami dapat mengubah kepemilikan direktori root dokumen domain ke pengguna Nginx (www-data)
:
$ sudo chown -R www-data: /var/www/domain1.com
kita akan melakukan prosedur yang sama pada domain2.net
Langkah 2. Buat File Blokir Server Nginx untuk Setiap Domain
Sekarang setelah kita memiliki konten yang ingin kita sajikan, kita harus benar-benar membuat blok server yang akan memberi tahu Nginx cara melakukannya.
Secara default, Nginx berisi satu blok server yang disebut dfault
yang dapat kita gunakan sebagai template untuk konfigurasi kita sendiri. Kami akan mulai dengan merancang blok server domain pertama kami, yang kemudian akan kami salin untuk domain kedua kami dan membuat modifikasi yang diperlukan.
1) Buat File Blok Server Nginx Pertama
Seperti disebutkan di atas, kami akan membuat file konfigurasi blok server pertama kami dengan menyalin file default:
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/domain1.com
Sekarang, buka file baru yang Anda buat di editor teks Anda dengan hak sudo:
$ sudo nano /etc/nginx/sites-available/domain1.com
Setelah mengedit file, itu akan terlihat seperti ini:
/etc/nginx/sites-available/domain1.comserver { listen 80; listen [::]:80; root /var/www/domain1.com; index index.html index.htm index.nginx-debian.html; server_name domain1.com www.domain1.com;
location /
{ try_files $uri $uri/ =404; } }
Itu saja yang kita butuhkan untuk konfigurasi dasar. Simpan dan tutup file untuk keluar dari Ctrl
+ x
.
2) Buat File Blokir Server Nginx Kedua
Sekarang kita memiliki konfigurasi blok server Nginx pertama kita, kita dapat menggunakannya sebagai dasar untuk file kedua kita. Salin untuk membuat file baru:
$ sudo cp /etc/nginx/sites-available/domain1.com /etc/nginx/sites-available/domain2.net
Buka file baru dengan sudo
hak istimewa di editor Anda:
$ sudo nano /etc/nginx/sites-available/domain2.net
Sesuaikan arahan root untuk menunjuk ke dokumen domain kedua kami root
dan sesuaikan server_name
untuk mencocokkan nama domain situs kedua Anda (pastikan untuk menyertakan semua alias).
Ketika Anda selesai, file kami kemungkinan akan terlihat seperti ini:
/etc/nginx/sites-available/domain2.netserver { listen 80; listen [::]:80; root /var/www/domain2.net; index index.html index.htm index.nginx-debian.html; server_name domain2.net www.domain2.net;
location /
{ try_files $uri $uri/ =404; } }
Simpan dan tutup file untuk keluar dari Ctrl
+ x
.
Langkah 3. Aktifkan Blok Server Nginx kami dan Mulai Ulang Nginx
Sekarang setelah kita memiliki file blok server, kita perlu mengaktifkannya. Kita dapat melakukannya dengan membuat tautan simbolik dari file-file ini ke sites-enabled
direktori tempat Nginx membaca saat startup.
Kita dapat membuat tautan ini dengan mengetik:
$ sudo ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/domain2.net /etc/nginx/sites-enabled/
File-file ini sekarang berada di direktori yang diaktifkan, Kami sekarang memiliki tiga blok server yang diaktifkan:
1. domain1.com:Akan menanggapi permintaan untuk domain1.com dan www.domain1.com
2. domain2.net:Akan menanggapi permintaan untuk domain2.net dan www.domain2.net
3. default:Akan menanggapi setiap permintaan pada port 80 yang tidak cocok dengan dua blok lainnya.
Untuk menghindari kemungkinan masalah memori hash bucket yang dapat timbul dari penambahan nama server tambahan, kami akan melanjutkan dan menyesuaikan satu nilai dalam file /etc/nginx/nginx.conf kami. Buka file sekarang:
$ sudo nano /etc/nginx/nginx.conf
Di dalam file, temukan server_names_hash_bucket_size
pengarahan. Hapus #
simbol untuk menghapus komentar pada baris:
http { . . . server_names_hash_bucket_size 64; . . . }
Simpan dan tutup file setelah Anda selesai.
Selanjutnya, uji untuk memastikan bahwa tidak ada kesalahan sintaks di salah satu file Nginx kami:
$ sudo nginx -t
Jika tidak ada masalah yang ditemukan, mulai ulang Nginx untuk mengaktifkan perubahan kami:
$ sudo systemctl restart nginx
Nginx sekarang seharusnya melayani kedua nama domain kita.
Langkah 4. Verifikasi dengan Mengakses situs web
Sekarang setelah kita siap, kita harus menguji apakah blok server kita berfungsi dengan benar. Kami dapat melakukannya dengan mengunjungi domain di browser web kami:
http://domain1.com
Anda akan melihat halaman yang terlihat seperti ini:
Jika Anda mengunjungi nama domain kedua, Anda akan melihat situs yang sedikit berbeda:
http://domain2.net
Kesimpulan
Dalam tutorial ini, kita belajar cara mengkonfigurasi blok server Nginx di Ubuntu 18.04/20.04. Menggunakan blok server Nginx, kami telah menyiapkan dua domain untuk melayani permintaan web.