Creazione di un Virtual Host
Configurazione di partenza
Il file di configurazione da cui partire sarà vuoto, tranne per la minima configurazione essenziale:
# events è necessario per ritenere la configurazione valida
events {}
http {}
Definizione del Virtual Host
Ogni Virtual Host viene definito con con Server Context.
# events è necessario per ritenere la configurazione valida
events {}
http {
server {
}
}
Un server context è responsabile del listening di una porta (es. 80 per il protocollo http o 443 per il protocollo https) per uno specifico indirizzo IP o dominio.
Direttive listen e server_name
La porta di ascolto è definita dalla direttiva listen, mentre il dominio o l'indirizzo IP è specificato tramite la direttiva server_name.
# events è necessario per ritenere la configurazione valida
events {}
http {
server {
listen 80;
server_name appunti.truppaperot.it
}
}
La direttiva server_name può accettare wildcards: ad esempio, *.mydomain.com corrisponderà a tutti i sottodomini di mydomain.com.
Direttiva root
La direttiva root specifica con quale cartella del server il Virtual Host deve rispondere.
# events è necessario per ritenere la configurazione valida
events {}
http {
server {
listen 80;
server_name appunti.truppaperot.it;
root /sites/demo;
}
}
Mime types e assets
Per permettere la lettura corretta degli asset, è necessario associare ad ogni estenzione di file un mime type (es. text/html per *.html).
Il mime type di default è text/plain.
Context types
L'associazione del mime type a un file viene definita nel contesto types all'interno di http.
# events è necessario per ritenere la configurazione valida
events {}
http {
types {
text/html html;
text/css css;
}
server {
listen 80;
server_name appunti.truppaperot.it;
root /sites/demo;
}
}
Metodo veloce di inserimento dei mime types
Scrivere tutti i mime types per tutte le estensioni diventa un compito tedioso.
Per questo motivo NGINX permette di velocizzare il tutto includendo il file /etc/nginx/mime.types tramite la direttiva ``.
Il file mime.types contiene al suo interno il contesto types e una lista molto completa di associazioni tra mime types e estensioni di file.
# events è necessario per ritenere la configurazione valida
events {}
http {
include mime.types; # Path relativa del file rispetto al file di configurazione
server {
listen 80;
server_name appunti.truppaperot.it;
root /sites/demo;
}
}