GNU/Linux >> Belajar Linux >  >> Linux

Cara mengatur subdomain atau meng-host beberapa domain menggunakan nginx di server linux

Tahukah Anda, Anda dapat meng-host beberapa domain dan subdomain menggunakan satu alamat ip di linux melalui blok server nginx (atau host virtual di Apache)?

Nah jika Anda tidak tahu bagaimana melakukannya, membaca tutorial ini akan menyiapkan Anda dua domain dan satu subdomain yang keduanya menunjuk ke alamat ip dan host yang sama di server yang sama.
Berikut asumsi umum untuk penyiapan ini:

  • Alamat IP :220.168.32.101
  • Nama domain :contoh.com, blog.contoh.com, berita palsu.com

Sebelum memulai tutorial, hal pertama yang harus Anda lakukan adalah mengarahkan semua domain dan subdomain Anda ke satu alamat ip melalui penyedia DNS Anda (edit A , CNAME ).
Namun jika Anda ingin menguji ini secara lokal, edit /etc/hosts file konfigurasi dan tambahkan berikut ini:

220.168.32.101 example.com blog.example.com
220.168.32.101 fakenews.com

Dan saat Anda melakukan ping ke domain ini secara lokal di server, Anda akan mendapatkan respons ok (200).

Sekarang kita akan mengikuti langkah-langkah untuk menyiapkan nama domain ini:

1. Instal dan mulai nginx

Gunakan perintah berikut untuk menginstal nginx di ubuntu

$ sudo apt install nginx
# now start it
$ sudo nginx

2. Uji nginx

Periksa salah satu domain atau alamat ip di browser Anda untuk memastikan nginx berfungsi dengan benar. Browser akan menampilkan halaman nginx default.

3. Siapkan direktori pengujian untuk setiap domain

Sampai sekarang, semua domain telah diatur dengan benar tetapi ada satu masalah besar, semua menunjuk ke halaman yang sama. Kita perlu memisahkan domain ini untuk menunjuk ke halaman mereka sendiri. Untuk ini, saya akan menyiapkan direktori pengujian dan halaman html.

  • Membuat direktori untuk setiap domain dan subdomain
$ cd /var/www
$ sudo mkdir example.com blog.example.com fakenews.com
  • Membuat halaman html sederhana untuk masing-masing
$ sudo touch example.com/index.html
$ sudo touch blog.example.com/index.html
$ sudo touch fakenews.com/index.html
  • Terakhir, letakkan beberapa konten berbeda di setiap index.html file

4. Membuat blok server untuk setiap domain dan subdomain

Nginx menyediakan default blok server di /etc/nginx/sites-available . Kami akan menyalin blok server itu untuk setiap domain dan melakukan modifikasi untuk masing-masing.
Kami juga akan membuat tautan simbolis dari file baru

## For example.com domain
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
## similarly do for others also.

Sekarang setelah modifikasi, file baru akan terlihat seperti ini untuk example.com domain

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/example.com;
        index index.html;
        server_name example.com;
}

Di sini default_server berarti jika tidak ada domain lain yang menyelesaikan, upaya terakhir adalah menyelesaikan blok server ini.

CATATAN:Hanya ada satu blok server default di nginx dengan port yang sama.

Demikian pula untuk dua domain lainnya konfigurasinya adalah:

## For blog.example.com subdomain
server {
        listen 80;
        listen [::]:80;
        root /var/www/blog.example.com;
        index index.html;
        server_name blog.example.com;
}

## For fakenews.com domain
server {
        listen 80;
        listen [::]:80;
        root /var/www/fakenews.com;
        index index.html;
        server_name fakenews.com;
}

Bonus: Misalkan fakenews.com domain mendengarkan pada port yang berbeda (katakan 2368 pelabuhan ) dan Anda ingin port proxy di nginx ke default 80 port, maka Anda dapat menggunakan lokasi blokir di dalam server blokir seperti ini:

server {
   ## other configuration as above
    # ...
  location {
     proxy_pass http://127.0.0.1:2368;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header HOST $http_host;
  }
}

Itu saja untuk saat ini, untuk pertanyaan apa pun, katakan di komentar di bawah.


Linux
  1. Cara Menginstal Server Web Nginx di Linux

  2. Cara Membuat Virtual Host Nginx (Blok Server)

  3. Cara Mengatur SSH Tanpa Kata Sandi di Linux

  1. Cara Menyinkronkan Waktu di Server Linux menggunakan Chrony

  2. Cara Mengatur Server Logging Terpusat menggunakan Rsyslog

  3. Melayani beberapa domain dengan menggunakan virtual host

  1. Cara Membuat CS:GO Server Di VPS Linux

  2. Cara menyiapkan server Linux di Amazon AWS

  3. Cara Memantau Server Linux menggunakan CloudStats