GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit subdoménu nebo hostit více domén pomocí nginx na linuxovém serveru

Věděli jste, že můžete hostovat více domén a subdomén pomocí jedné IP adresy v linuxu prostřednictvím bloků serveru nginx (nebo virtuálních hostitelů v Apache)?

Pokud nevíte, jak to udělat, přečtení tohoto návodu vám nastaví dvě domény a jednu subdoménu směřující na stejnou IP adresu a hostitele na stejném serveru.
Zde je obecný předpoklad pro toto nastavení:

  • IP adresa :220.168.32.101
  • Názvy domén :example.com, blog.example.com, fakenews.com

Než začnete s výukovým programem, první věc, kterou musíte udělat, je nasměrovat všechny vaše domény a subdomény na jedinou IP adresu prostřednictvím vašeho poskytovatele DNS (upravit A , CNAME ).
Pokud to však chcete otestovat lokálně, upravte soubor /etc/hosts konfigurační soubor a přidejte následující:

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

A když tyto domény pingnete lokálně na serveru, dostanete odpověď OK (200).

Nyní budeme postupovat podle kroků pro nastavení těchto doménových jmen:

1. Nainstalujte a spusťte nginx

Pomocí následujícího příkazu nainstalujte nginx na ubuntu

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

2. Otestujte nginx

Zkontrolujte libovolnou z domén nebo ip adresu ve svém prohlížeči, abyste se ujistili, že nginx funguje správně. Prohlížeč zobrazí výchozí stránku nginx.

3. Nastavte testovací adresáře pro jednotlivé domény

Doposud byly všechny domény nastaveny správně, ale je tu jeden obrovský problém, všechny ukazují na stejnou stránku. Musíme tyto domény oddělit, aby ukazovaly na jejich vlastní stránky. Za tímto účelem nastavím testovací adresáře a html stránky.

  • Vytváření adresářů pro jednotlivé domény a subdomény
$ cd /var/www
$ sudo mkdir example.com blog.example.com fakenews.com
  • Vytvoření jednoduchých html stránek pro každého
$ sudo touch example.com/index.html
$ sudo touch blog.example.com/index.html
$ sudo touch fakenews.com/index.html
  • Nakonec vložte do každého index.html jiný obsah soubory

4. Vytváření serverových bloků pro každou doménu a subdoménu

Nginx poskytuje výchozí blok serveru v /etc/nginx/sites-available . Zkopírujeme tento blok serveru pro každou doménu a pro každou provedeme úpravy.
Také vytvoříme symbolický odkaz nového souboru

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

Nyní po úpravě bude nový soubor vypadat takto pro example.com doména

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

Zde výchozí_server znamená, že pokud se nevyřeší žádná z ostatních domén, poslední možností je vyřešit tento blok serveru.

POZNÁMKA:V nginx je pouze jeden výchozí blok serveru se stejným portem.

Podobně pro další dvě domény jsou konfigurace:

## 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: Předpokládejme fakenews.com doména naslouchá na jiném portu (řekněme 2368 port ) a chcete nastavit port proxy v nginx na výchozí 80 port, pak můžete použít polohu blokovat na serveru blokovat takto:

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;
  }
}

To je prozatím vše, případné dotazy pište do komentářů níže.


Linux
  1. Jak nainstalovat webový server Nginx na Linux

  2. Jak vytvořit virtuální hostitele Nginx (blok serveru)

  3. Jak nastavit server centralizovaného protokolování pomocí Rsyslog

  1. Jak synchronizovat čas na serveru Linux pomocí Chrony

  2. Jak nastavit SSH bez hesla v systému Linux

  3. Obsluhujte více domén pomocí virtuálních hostitelů

  1. Jak vytvořit server CS:GO na Linux VPS

  2. Jak nastavit server Linux na Amazon AWS

  3. Jak monitorovat linuxové servery pomocí CloudStats