Una volta che accedi all'hosting online, probabilmente vorrai sapere come hostare più siti web su un singolo server. Anche se potrebbe sembrare complicato, man mano che approfondisci l'argomento, capirai che puoi farlo con l'aiuto di guide tecniche.
Diversi web server possono fornirti servizi gratuiti, open-source e ampiamente utilizzati in tutto il mondo. Tuttavia, prima di spiegare come hostare più siti web su un singolo server, dobbiamo capire cos'è un web server e come funziona.
- Cos'è un server web?
- Hostare più siti web su un singolo server: Apache
- Passaggio 1: Crea una Cartella per Ogni Sito
- Passaggio 2: Impostare i Permessi della Cartella
- Passaggio 3: Configurare una Pagina di Indice
- Passaggio 4: Copiare il File di Configurazione per Ogni Sito
- Passaggio 5: Modificare il File di Configurazione per Ogni Sito
- Passaggio 6: Abilitare il File di Configurazione
- Passaggio 7: Verificare le Configurazioni di Apache
- Ospitare più siti Web su un unico server: IIS
- Esecuzione di Più Siti con Indirizzi IP Diversi su Server IIS
- Considerazione finale: Ospitare più siti Web su un unico server
- Domande frequenti
Cos'è un server web?
Un server web archivia e fornisce contenuti come testo, immagini, video e dati di applicazioni per un sito Web. In altre parole, i client che richiedono questi contenuti possono utilizzarli con l'aiuto dei server web. Uno dei client più tipici è un programma di browser web che richiede dati dal tuo sito Web quando un utente fa clic su un collegamento o scarica un file.
Un server web comunica tramite Protocollo di trasferimento ipertestuale (HTTP) con un browser web. Il contenuto della maggior parte delle pagine Web è codificato in Hypertext Markup Language (HTML). I contenuti possono essere statici, come testo e immagini, o dinamici, come un elenco di articoli che un cliente ha contrassegnato per l'acquisto. La maggior parte dei server web supporta linguaggi di scripting lato server per codificare la logica di business nella comunicazione e fornire contenuti dinamici. In genere sono supportati linguaggi come Active Server Pages (ASP), JavaScript, PHP, Python e Ruby.
Come Funziona un Web Server?
I server web funzionano secondo un client-server modello. In questa struttura standard, il cliente richiede una risorsa o un servizio al server.
I server web seguono alcuni passaggi per elaborare le richieste dei client web:
- Quando un utente vuole caricare contenuto nel sito web, il browser richiede accesso (richiesta HTTP) attraverso internet.
- Il browser web cerca l'indirizzo IP del sito richiesto. Traduce il URL delle pagine web utilizzando il Sistema dei nomi di dominio (DNS) oppure cercando nella sua cache. Questo processo ti aiuta a localizzare il server web, cioè dove sono ospitati i file del sito.
- A questo punto, il server web riceve la richiesta HTTP e la elabora attraverso il suo server HTTP.
- Una volta che il server HTTP accetta la richiesta, cerca nei file del server i dati rilevanti.
- Il server web restituisce i file del sito al browser che ha inviato la richiesta. Dopo di che, l'utente vede il contenuto del sito.
Tuttavia, tieni presente che se il server HTTP non riesce a trovare o elaborare i file richiesti, vedrai un messaggio di errore nel browser web. Ora che conosci i concetti principali dei server web, puoi facilmente imparare come ospitare più server web su un unico server.
Hostare più siti web su un singolo server: Apache
Se vuoi ospitare più di un sito su un server, devi usare i file virtual host di Apache per specificare quale dominio deve essere utilizzato. Uno dei metodi usati per risolvere le richieste di sito è chiamato Virtual host basati sul nome. Quando qualcuno visita il tuo sito, la richiesta va al server, che determina quali file del sito servire in base al nome di dominio. Questa tecnica ti permette di ospitare più siti su un unico server con lo stesso IP. Questo articolo guida spiegherà come configurare il file virtual host per ciascuno dei tuoi domini. Prima di approfondire i dettagli, ricorda che devi accedere come account root.
Leggi anche: “Linux vs Windows hosting: Quale è meglio per te?”
Passaggio 1: Crea una Cartella per Ogni Sito
Innanzitutto installa apache2 usando questo comando
Per i sistemi basati su Debian
apt install apache2 -y
Per il sistema base CentOS
yum install apache2 -y
Devi creare una directory per ogni sito che ospiterai (nella cartella /var/www). Considera domain.com e domain2.com per i tuoi nomi di dominio.
mkdir -p /var/www/domain.com/public_html
mkdir -p /var/www/domain2.com/public_html
Passaggio 2: Impostare i Permessi della Cartella
chmod -R 755 /var/www
Passaggio 3: Configurare una Pagina di Indice
Per visualizzare una home page, devi assicurarti che il index.html file sia creato per ogni dominio. Puoi impostare qualcosa di semplice come test per domain.com in questo file.
vim /var/www/domain.com/public_html/index.html
test per domain.com
Ora devi salvare e uscire usando Fuga pulsante e digitando: wq
Puoi usare il comando qui sotto per ripetere tutti questi passaggi per il tuo secondo dominio.
vim /var/www/domain2.com/public_html/index.html
Passaggio 4: Copiare il File di Configurazione per Ogni Sito
Devi copiare il file di configurazione predefinito per ogni sito, assicurandoti di avere sempre una copia predefinita per la creazione futura di siti.
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain2.com.conf
Passaggio 5: Modificare il File di Configurazione per Ogni Sito
Come minimo dovrai modificare e aggiungere le righe evidenziate all'interno di <VirtualHost *:80> e tag </VirtualHost>.
Nota che ServerAlias è il nome alternativo per il tuo dominio; in questo caso e nella maggior parte dei casi, metti www davanti al nome del dominio in modo che altri possano vedere il sito sia con www che senza www (ServerName).
vim /etc/apache2/sites-available/domain.com.conf

Esci e salva di nuovo utilizzando wq. Devi ripetere questo processo per il tuo domain2.com.conf file; assicurati di aggiornare il ServerName, ServerAlias, e DocumentRoot per il tuo secondo dominio.
Leggi anche: “Apache vs NGINX”
Passaggio 6: Abilitare il File di Configurazione
Il tuo server è impostato per leggere il file 000-default.conf per impostazione predefinita. Ma nel passaggio precedente, abbiamo creato un file di configurazione nuovo per ogni dominio. Quindi, dovremo disabilitare il file predefinito e usare uno appropriato per il nuovo file di configurazione.
a2dissite 000-default.conf
Puoi mappare il tuo server ai tuoi domini abilitando ciascuno dei tuoi file .conf appena creati.
a2ensite domain.com.conf
a2ensite domain2.com.conf
Ora riavviamo Apache per registrare le modifiche apportate.
systemctl restart apache2
Passaggio 7: Verificare le Configurazioni di Apache
Dopo l'avvio di Apache, puoi verificare che le configurazioni funzionano modificando il tuo file /etc/host sul tuo computer o DNS del tuo dominio.
Una volta che ogni aspetto è impostato, puoi visitare il tuo sito web in un browser per vedere le pagine index.html create nel Passaggio 3.
Leggi anche: On-Premises vs. Cloud
Ospitare più siti Web su un unico server: IIS
Possiamo usare un server web IIS (Internet Information Services) per ospitare decine o anche centinaia di siti web. Puoi ospitare più siti web su di esso, in ascolto e in risposta sulla stessa Porta TCP. Ma l'interfaccia di IIS Manager mostra che puoi ospitare un altro sito web senza associarlo a un'altra porta come 8080. Questa sezione spiega come ospitare più siti web sullo stesso server IIS e associarli alla stessa porta e indirizzo IP o anche a indirizzi IP diversi.
Come installare IIS su un server Windows?
Quando installi IIS su Windows, viene creato un Default Website vuoto che è in ascolto sulla porta TCP standard del web HTTP – TCP 80. In termini tecnici, il nostro sito è associato alla porta TCP/80. Devi inserire il nome del server IIS ("http://web-srv1") o il suo indirizzo IP ("http://192.168.1.100") nel tuo browser per aprire questo sito.
Passaggio 1: Associazione del sito web IIS
Un server web IIS in esecuzione su Windows Server può aiutarti a ospitare più siti web. Ma IIS distribuisce correttamente le richieste HTTP solo se ogni sito web deve essere identificato con un valore univoco. Il sito web IIS include tre attributi che formano una combinazione univoca per ogni sito web. Questi attributi sono elencati di seguito:
- un numero di porta TCP
- un indirizzo IP
- un host header (hostname)
Le informazioni sui siti web ospitati sono memorizzate in ServerBindings attributo di IIS Metabase, e il suo formato è come questo: IP:Porta:Nome host. Quindi, se vuoi ospitare più siti web su un unico server (stessa porta e indirizzo IP), devi utilizzare un Host header univoco.
Ti chiederai, cos'è un Host header? L'Host header è la parte di una richiesta HTTP al server che specifica a quale sito web è indirizzata. Per questo motivo, dobbiamo indicare questo Host header sul lato del server web. Nota che DNS contiene il record corretto che corrisponde al nome host e all'indirizzo IP del server web IIS.
Ora supponiamo che tu abbia un sito web in esecuzione sul server IIS in ascolto sulla porta 80. Cosa fare quando vogliamo associare il secondo sito web sulla stessa porta?
Passaggio 2: Associazione del secondo sito web IIS
In Internet Information Service (IIS) Manager, devi creare un altro sito web utilizzando la finestra Aggiungi sito web e denominarlo TestSite. Questo sito web si troverà in C:\inetpub\TestSite. Fai attenzione a non specificare ancora il nome host.
Dopo aver copiato il contenuto del sito in C:\inetpub\TestSite apri Internet Information Service (IIS) Manager e nel nome host del server aggiungi il sito per aprire la procedura guidata.


Dopo aver fatto clic su Ok, vedrai un messaggio di avviso che ti informa che non puoi utilizzare binding *:80 per entrambi questi siti web.


Dopo aver accettato questo avviso, avrai un altro sito associato alla porta 80. Quindi, non puoi avviarlo senza arrestare il primo sito web. Puoi comprendere meglio questo aspetto prestando attenzione all'immagine seguente.

Hosting VPS Windows
Scopri i nostri piani Windows VPS convenienti, con hardware potente, latenza minima e un Windows gratuito a tua scelta!
Richiedi il Tuo Windows GratuitoHosting di Più Siti Web su Server IIS tramite Host Headers
Devi scegliere un altro nome (Nome host) per il secondo sito web IIS per creare un'associazione univoca. Per farlo, fai clic con il tasto destro TestSite e seleziona Modifica Bindings. Seleziona l'associazione di cui hai bisogno e fai clic Modifica.
Come puoi vedere nell'immagine seguente, dovremmo specificare il nome host univoco a cui l'utente accede. In questo tutorial utilizziamo TestSite; allora inseriamo il nome host nel campo Hostname.

Puoi utilizzare il prompt dei comandi per configurare l'associazione del sito IIS. Se utilizzi IIS 7 o versione successiva, vedrai qualcosa di simile dopo aver eseguito il comando per configurare l'associazione del sito IIS:
C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']
Così come per il primo sito web, puoi avviare anche il secondo.

A questo punto, devi aggiungere un alias DNS per il server (record A o CNAME) che rimandi all'indirizzo IP o al nome host del server web IIS. Se utilizzi un dominio Active Directory, devi creare record XQNT0019ZX sul controller di dominio. IIS ti consente di creare un CNAME record per il nome TestSite nella console DNS (dnsmgmt.msc) e imposta il nome di dominio del tuo server IIS come host target FQDN.

Puoi anche creare questo record DNS via PowerShell con il seguente comando:
Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com
Proviamo ad aprire http://TestSite nel browser. Se tutto è stato fatto correttamente, dovrebbe aprirsi senza problemi.

Hosting Linux Semplificato
Cerchi un modo migliore per ospitare i tuoi siti e app web? Stai sviluppando qualcosa di nuovo? Semplicemente non ti piace Windows? Per questo abbiamo Linux VPS.
Ottieni il tuo Linux VPSEsecuzione di Più Siti con Indirizzi IP Diversi su Server IIS
Vediamo ora come eseguire due siti su un server IIS con indirizzi IP diversi. Per prima cosa, devi aggiungere un'interfaccia VLAN separata al server Windows oppure assegnare un indirizzo IP aggiuntivo (alias) alla scheda di rete.
In questo tutorial, il server ha l'indirizzo IP primario 192.168.13.100 e aggiungeremo l'alias IP 192.168.13.101 allo stesso adattatore di rete:
Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
New-NetIPAddress –IPAddress 192.168.13.101 –PrefixLength 24 –InterfaceAlias “Ethernet” –SkipAsSource $True
Ora devi creare un record A per il tuo nuovo sito sul server DNS:
Add-DnsServerResourceRecordA -Name NewSite3 -IPv4Address 192.168.13.101 -ZoneName woshub.com -TimeToLive 01:00:00 –CreatePtr
Rimane da aprire le impostazioni di Site Binding e associare il sito all'indirizzo IP aggiuntivo del tuo host. Puoi gestire l'associazione dei siti su un server IIS usando PowerShell. Per farlo, si utilizza il modulo WebAdministration:
Import-Module WebAdministration
Puoi visualizzare le informazioni su tutti i siti IIS disponibili e i loro binding:
Get-IISSite
Oppure solo per un singolo sito:
(Get-Website -Name NewSite).bindings.Collection

Usa il seguente comando per modificare il binding di questo sito; nota che ti permette di cambiare gli indirizzi IP, la porta o il nome:
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:80:NewSite1" -PropertyName 'Port' -Value '8080'
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:8080:NewSite1" -PropertyName 'IPAddress' -Value '192.168.13.100'
Puoi eseguire questo comando per aggiungere un nuovo binding al sito IIS particolare:
New-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:" -Protocol http
La rimozione di un binding si effettua con il seguente comando:
Remove-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:"
Come hai visto, puoi eseguire più siti web su un server IIS sia con indirizzi IP diversi che sullo stesso indirizzo IP e numero di porta TCP.
Considerazione finale: Ospitare più siti Web su un unico server
Questo articolo si è concentrato principalmente sui concetti fondamentali dei server, aiutandoti a imparare come ospitare più siti web su un unico server. Offriamo anche molteplici Linux VPS soluzioni di hosting che puoi utilizzare per eseguire diversi siti web su un server. I piani di Cloudzy riducono i costi rispetto all'avere più server, ma ti permettiamo anche di sfruttare al meglio i nostri servizi. Inoltre, puoi facilmente upgrade le risorse del tuo server, inclusi RAM, storage, processore e larghezza di banda.
Domande frequenti
Puoi ospitare più siti Web su un singolo server web?
Se hai un server potente con risorse estese come spazio HDD, RAM e potenza CPU sufficienti, puoi ospitare più siti web usando l'hosting virtuale. Puoi ospitare un numero illimitato di siti web sul tuo server web.
Come possiamo eseguire due siti Web su un unico server?
L'hosting di più siti web su un singolo server web è chiamato Virtual Server. Inoltre, devi assicurarti che il server selezionato abbia risorse sufficienti per gestire il traffico e i requisiti di spazio disco.
A cosa serve un server VPS?
VPS è un servizio di hosting che può fornirti risorse dedicate (private) su un server. Presta attenzione al fatto che utilizzare VPS è una soluzione più sicura e stabile rispetto all'hosting condiviso, che non ti fornisce uno spazio server dedicato.
Perché le persone usano VPS?
L'hosting VPS è diventato una scelta diffusa perché generalmente ha un costo inferiore rispetto all'hosting dedicato, offrendo allo stesso tempo affidabilità, sicurezza e prestazioni migliori rispetto all'hosting condiviso.