GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare un host virtuale Nginx (blocco server)

I blocchi del server, spesso indicati come host virtuali in Nginx, consentono di ospitare più siti Web su un server. Ecco come usarli.

Sommario

  • Cos'è un host virtuale?
  • Come funziona l'host virtuale?
  • Come creare host virtuali Nginx (blocchi server)
    • 1. Creazione della struttura della directory
    • 2. Creazione di pagine di prova per ogni sito web
    • 3. Crea host virtuale Nginx (blocchi server)
    • 4. Abilita host virtuali Nginx (blocchi server)
    • 5. Test degli host virtuali (opzionale)
    • 6. Disabilita Nginx Virtual Host (Blocchi server)
  • Conclusione

Nginx è progettato per gestire più domini su un unico server e indirizzo IP. In altre parole, se hai un unico server che viene utilizzato come server web e ha allocato un solo indirizzo IP, per avere più di un sito web o dominio in esecuzione sul server, utilizzi gli host virtuali Nginx.

Prima di iniziare questo tutorial, dovrai installare Nginx. Per sapere come installarlo, leggi la nostra eccellente guida sull'installazione di Nginx Web Server su Linux.

Cos'è un host virtuale?

Se non sei sicuro di cosa sia un host virtuale, lascia che ti spieghi. È un termine di Apache HTTP Server; tuttavia, è anche comunemente usato dagli utenti di Nginx. Il termine corretto per Nginx è blocco server .

Un host virtuale è un metodo per ospitare più nomi di dominio su un unico server.

Come funziona l'host virtuale?

Quando avvii un software server web come Nginx su un server, quel server web si legherà a una o più porte di rete. Di solito, per un server web, saranno le porte 80 e 443.

Quando un computer visita un sito Web, invia una richiesta tramite Internet al server e il server riceverà tale richiesta. Quindi la prima cosa che il server farà è guardare la porta su cui è stata inviata la richiesta alla porta di destinazione.

Successivamente, utilizzerà quella porta di destinazione per determinare quale applicazione inoltrare tali informazioni. Ciò significa che il tuo server web può avere solo un'applicazione che riceve le richieste.

Ma cosa succede se si desidera ospitare due siti Web diversi sullo stesso server Web? Il server deve dire quando arriva un pacchetto che richiede il sito web. Quindi, deve sapere quale sito Web viene richiesto per sapere quali informazioni inviare.

Indipendentemente dal sito Web richiesto, il server non può utilizzare il numero di porta da solo la porta di destinazione per determinare a quale sito Web sta tentando di accedere un client. Tutto ciò che il server farà è dire "Sto inviando questa richiesta a Nginx". Da lì, Nginx deve decidere cosa inviare.

Nginx ha un concetto chiamato blocchi server . I blocchi server possono essere usati per due cose diverse.

Possono essere utilizzati per servire altri siti Web in base all'indirizzo IP richiesto oppure possono essere utilizzati per servire diversi siti Web in base al nome di dominio utilizzato .

Quindi, quando digiti il ​​nome del sito Web come www.example.com e quando il server lo riceve, Nginx può guardare all'interno delle intestazioni HTTP quale nome del server è stato richiesto e da lì, in base ai suoi host virtuali configurati, per fare una decisione su quale directory archivia i file del sito Web e restituire la risposta corretta al client in base al nome del server.

Come creare host virtuali Nginx (blocchi server)

Ci sono due directory in cui possiamo creare e archiviare i nostri file di configurazione dell'host virtuale. Entrambi si trovano all'interno di /etc/nginx directory. I nomi di queste due directory sono sites-available e sites-enabled .

  • /etc/nginx/sites-available :La directory in cui sono definiti i singoli host virtuali (siti Web). Ricorda che Nginx non utilizzerà i file di configurazione trovati in questa directory a meno che non siano collegati/etc/nginx/sites-enabled directory.
  • /etc/nginx/sites-enabled :Elenco degli host virtuali (siti Web) attivamente serviti da Nginx.

Probabilmente ti chiedi perché abbiamo bisogno di due directory per archiviare i nostri file host virtuali? Il vantaggio principale di ciò è che possiamo creare molti file host virtuali sul nostro server Nginx, ma possiamo abilitarli secondo i nostri requisiti.

Creeremo file host virtuali per ospitare più siti con più domini nel nostro server Nginx. I nomi di dominio sono sito web1.comsito web2.com .

1. Creazione della struttura della directory

La prima cosa che dobbiamo fare è creare una directory per ogni host virtuale per memorizzare i diversi contenuti del sito web. Metteremo le directory in /var/www , e li nomineremo dopo ogni nome di dominio.

Esegui i seguenti comandi per creare le directory:

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

Il -p flag nel comando sopra dice a mkdir per creare le directory principali necessarie.

2. Creazione di pagine di prova per ogni sito web

Successivamente, a scopo dimostrativo, creiamo un index.html file all'interno della directory principale del documento del dominio in modo da avere qualcosa da visualizzare.

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

Incolla le seguenti righe:

<!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>

Ora ripeti il ​​passaggio precedente per website2.com.

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

Incolla le seguenti righe:

<!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. Crea host virtuale Nginx (blocchi server)

Per creare un file host virtuale Nginx all'interno di sites-available directory, eseguire il comando seguente:

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

È importante notare che il file di configurazione dell'host virtuale Nginx può essere denominato come preferisci, ma di solito è buona norma utilizzare il nome di dominio.

Ora, incolla il seguente contenuto nel tuo file host virtuale:

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

Per rendere le cose più trasparenti, analizziamo questa sintassi. Innanzitutto, ecco cosa significa ogni parametro:

  • listen :Specifica su quale porta il server Nginx deve ascoltare le connessioni.
  • server_name :Qui abbiniamo le richieste per il nostro dominio. La direttiva contiene un elenco di nomi di dominio che vogliamo utilizzare per accedere al nostro sito.
  • root : Il percorso della directory in cui abbiamo archiviato i file del nostro sito Web.
  • error_log :Percorso completo del file di registro in cui memorizziamo tutti i registri degli errori di questo host virtuale.
  • access_log :Percorso completo del file di registro in cui memorizziamo tutti i registri di accesso di questo host virtuale.

Ora possiamo usare la nostra configurazione iniziale dell'host virtuale come base per il nostro secondo file. Basta copiarlo per creare un nuovo file:

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

Apri il nuovo file e regolalo in modo che corrisponda al nostro secondo (website2.com ) nome di dominio:

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. Abilita host virtuali Nginx (blocchi server)

L'ultima cosa che dobbiamo fare prima di testare abilita gli host virtuali. Possiamo farlo creando un collegamento simbolico dal file al sites-enabled directory:

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/

Come puoi vedere dall'immagine qui sotto, questi file sono ora collegati a sites-enabled directory.

Prima di andare avanti, controlliamo due volte che non ci siano errori di battitura. Verifica la configurazione di Nginx per la sintassi corretta:

sudo nginx -t

E infine, se non sono stati rilevati problemi, riavvia il servizio Nginx per applicare le modifiche:

sudo systemctl restart nginx

5. Test degli host virtuali (opzionale)

Per testare gli host virtuali Nginx, dobbiamo prima puntare i nostri record di nomi di dominio all'indirizzo IP del server. Nel nostro caso, l'indirizzo IP del server è 192.168.122.101 .

Se sei su Linux, apri il /etc/hosts file sul tuo PC desktop (quello da cui eseguirai il test) utilizzando il comando seguente:

sudo vim /etc/hosts

E aggiungi i nomi di dominio virtuali uno per uno, come mostrato di seguito.

Salva e chiudi il file quando hai finito. In questo modo potremo testare domini che non possediamo.

Ora apri il browser e inserisci www.website1.com e www.website2.com uno per uno. Vedrai rispettivamente le pagine indice di entrambi i domini.

Hai configurato correttamente due domini indipendenti con Nginx.

6. Disabilita Nginx Virtual Host (Blocchi server)

Per disabilitare un host virtuale in Nginx, dobbiamo rimuovere il collegamento simbolico che abbiamo creato durante l'abilitazione del file host virtuale. Ad esempio, per disabilitare website2.com , dobbiamo eseguire il seguente comando:

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

Per applicare le modifiche, dobbiamo riavviare il server Nginx:

sudo systemctl restart nginx

Conclusione

Questo articolo mostra come creare host virtuali Nginx (blocchi di server) e ospitare più domini su un singolo server Linux. Per creare un host virtuale per un altro dominio, ripeti gli stessi passaggi. Ma, ovviamente, Nginx può fare molto di più.

Inoltre, se vuoi sapere come proteggere il tuo sito web con un certificato SSL gratuito, ti consiglio di consultare la nostra guida Let's Encrypt:Ottieni un certificato SSL gratuito utilizzando Certbot.

Per ulteriori informazioni sulla configurazione di un server Nginx, puoi fare riferimento alla documentazione ufficiale di Nginx.

Grazie per aver letto! Spero che tu abbia trovato utile l'articolo e che tu sia stato in grado di configurare gli host virtuali. Sentiti libero di lasciare un commento in caso di domande.


Linux
  1. Come configurare l'host virtuale Nginx (blocchi server) su CentOS 7

  2. Come reindirizzare da HTTP a HTTPS in Nginx

  3. Come creare un backup

  4. Come creare un output virtuale in Pulseaudio?

  5. Host virtuale Nginx – Blocco del server Nginx

Come installare Nginx in Debian 7

Come installare Nginx su Fedora 22

Come installare HHVM (HipHop Virtual Machine) su Ubuntu 20.04 usando Nginx

Come installare NGINX su Ubuntu 20.04

Come installare Nginx su CentOS 7

Come configurare NGINX su un server CentOS 7