lunedì, Dicembre 9, 2024

Apache e Virtual Hosts: come ospitare più siti web sullo stesso server?

Alessio Molinas
Alessio Molinashttp://www.alessiomolinas.com
Ha 22 anni, è un sistemista che si occupa principalmente di virtualizzazione VMware, reti e sistemi operativi Unix. Lavora presso l'ICT di un ente pubblico. La sua passione è la fotografia in campo musicale.

Quando si acquista uno spazio web per poter pubblicare il proprio sito internet si ci affida a delle aziende che si occupano di hosting (dall’inglese to host, ospitare). Il servizio, di solito, non ha costi molto elevati in quanto su uno stesso server (Windows o Linux che sia) vengono ospitati diversi siti web.

Questa tecnica consente di risparmiare IP pubblici e allo stesso tempo risorse hardware: al server viene assegnato un IP pubblico, e i DNS (es. www.alfa.it, www.beta.it, www.gamma.it) puntano allo stesso IP pubblico.

Vhosts

Il server, a seconda della provenienza della richiesta, la reindirizza su un sito web piuttosto che un altro.

Oggi spiego come configurare Apache in modo tale da poter ospitare molteplici siti web sullo stesso server.

Requisiti:

  • server fisico/virtuale Linux Centos 6.5
  • server web Apache2

Procedura
Per ciascun sito che si vuole ospitare si può procedere nel seguente modo

 cd /var/www
mkdir www.alfa.it
cd www.alfa.it
mkdir www
mkdir cgi-bin

In “/var/www/” creare una cartella “root” nella quale si salva un file “index.html” contente il nome host del server

mkdir /var/www/root

 

index.html

<html>
<head>
<title>web01</title>
</head>
<body>
<h1>web01</h1>
</body>
</html>

 

Per poter abilitare i Virtual Hosts è necessario editare il file relativo alla configurazione di Apache; tale file “httpd.conf” si trova in “/etc/httpd/conf/”.

vi /etc/httpd/conf/httpd.conf

 

All’interno del file devono essere presenti le seguenti righe (non commentate):

  • DocumentRoot “/var/www/root/
  • DirectoryIndex index.html index.htm
  • Listen 80

Nota bene: settando la DocumentRoot di default con “/var/www/root/” impediamo che dal broswer, digitando l’IP pubblico/privato del server, sia possibile visualizzare le directory relative agli altri siti web.

Cercare la sezione relativa ai Virtual Hosts; assicurarsi che la riga “NameVirtualHost *:80” non sia commentata.

Per ciascun sito web da ospitare bisgona inserire la seguente configurazione:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/alfa.it/www
ServerName www.alfa.it
ServerAlias alfa.it
ErrorLog /var/log/apache/alfa.it-error_log
CustomLog /var/log/apache/alfa.it-access_log
</VirtualHost>

 

ServerAdmin indica la mail dell’amministratore del sito web
DocumentRoot indica il path del sito web
ServerName indica il DNS con il quale si accede al sito web
ServerAlias indica il DNS senza il “www”
ErrorLog indica il percorso nel quale saranno presenti i log di errore del sito in oggetto
CustomLog indica il percorso nel quale saranno presenti i log del sito in oggetto

Riavviare il server di Apache: service httpd restart

Se si vuole risolvere il DNS ww.alfa.it dal server web stesso si può aggiungere una riga al file hosts in “/etc/”

# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost

#Virtual Hosts
127.0.0.1 www.alfa.it

 

Articoli correlati

Noleggia una Tesla per il tuo evento ICT!

Categorie