{"id":157,"date":"2026-06-04T10:52:52","date_gmt":"2026-06-04T08:52:52","guid":{"rendered":"http:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/?p=157"},"modified":"2026-06-04T11:00:11","modified_gmt":"2026-06-04T09:00:11","slug":"ospitare-piu-siti-web-sullo-stesso-server-web","status":"publish","type":"post","link":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/2026\/06\/04\/ospitare-piu-siti-web-sullo-stesso-server-web\/","title":{"rendered":"Ospitare pi\u00f9 siti Web sullo stesso Server WEB"},"content":{"rendered":"\r\n<h2 class=\"wp-block-heading\">Introduzione<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">La necessit\u00e0 di ospitare pi\u00f9 siti web all&#8217;interno dello stesso server Web (es. Apache) \u00e8 piuttosto frequente ed \u00e8 una tecnica comunemente utilizzata dai fornitori di servizi hosting (es. Aruba, Netsons, Ionos, &#8230;).<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Il problema<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ogni sito web ha un suo hostname, nel caso di https:\/\/www.nervigalilei.edu.it l&#8217;hostname \u00e8 www.nervigalilei.edu.it, che i server DNS traducono in indirizzo IP. Utilizzando il comando <strong>nslookup www.nervigalilei.edu.it <\/strong>si scopre facilmente che corrisponde all&#8217;indirizzo <strong>89.46.109.35<\/strong> (valido al momento della scrittura del presente articolo, nel tempo potrebbe cambiare).<br \/>\u00c8 molto probabile che tale indirizzo IP non sia associato solo a www.nervigalilei.edu.it ma sia associato anche ad altri hostname, ad esempio www.nonsaprei.it. Se cos\u00ec fosse (e lo \u00e8, fidatevi) quando un browser si collega alla porta 80 (o 443) dell&#8217;host avente indirizzo IP 89.46.109.35, come fa il server web a sapere che deve fornire le pagine del sito https:\/\/www.nervigalilei.edu.it piuttosto che quelle del sito http:\/\/www.nonsaprei.it?<\/p>\r\n<p>Nell&#8217;immagine seguente i 3 hostname (www.dominio1.com, www.dominio2.com e www.dominio3.com) si traducono nello stesso indirizzo IP (79.54.103.21)<\/p>\r\n<p>.<img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-257\" src=\"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-content\/uploads\/2021\/02\/vhost-multiplename-300x202.png\" alt=\"\" width=\"433\" height=\"292\" srcset=\"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-content\/uploads\/2021\/02\/vhost-multiplename-300x202.png 300w, https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-content\/uploads\/2021\/02\/vhost-multiplename.png 554w\" sizes=\"auto, (max-width: 433px) 100vw, 433px\" \/><\/p>\r\n\r\n\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">I server web ed il protocollo HTTP(s)<\/h2>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Ricordiamo velocemente che il protocollo HTTP(S) si colloca al livello <strong>Application<\/strong> dello stack ISO\/OSI o dello stack TCP\/IP e prevede la presenza di un client (il browser, cio\u00e8 Chrome, Firefox, Edge, &#8230;) e di un servizio server (il server web, cio\u00e8 Apache, Nginx, Ligthttp, IIS, &#8230;) che una volta posto in esecuzione sulla macchina server, si mette in attesa delle richieste che arrivano sulla porta 80 (o 443) da parte del client. <br \/>Nel caso pi\u00f9 semplice, quello delle pagine statiche, il server web legge dal file system della macchina su cui \u00e8 ospitato, il file richiesto dall&#8217;URL ricevuto dal client e lo invia al browser richiedente.<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-261\" src=\"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-content\/uploads\/2021\/02\/vhost-http-300x90.gif\" alt=\"\" width=\"487\" height=\"146\" \/><\/p>\r\n\r\n\r\n\r\n\r\n\r\n<h2>La soluzione: VirtualHost basati sull&#8217;URL<\/h2>\r\n<p class=\"wp-block-paragraph\">Innanzi tutto una precisazione. I VirtualHost basati sull&#8217;URL non hanno nulla a che vedere con la virtualizzazione a livello di macchina (es. VirtualBox, VMWare, &#8230;) o di processo (es. Docker).<\/p>\r\n<p>Con questa tecnologia il server web analizza preliminarmente l&#8217;URL della richiesta pervenutagli, in particolare viene analizzato l&#8217;host name (http:\/\/<strong>www.dominio2.com<\/strong>\/index.html) ed in base a questo la richiesta viene dirottata su un sottoinsieme del filesystem associato a quell&#8217;hostname.<\/p>\r\n<p>La figura seguente illustra il funzionamento di un server su cui \u00e8 attiva la tecnologia VirtualHost. Il server Web ospita 3 siti; in questo caso si ipotizza che per &#8230;.\u00a0 Quando arriva una rihiesta, il relativo URL viene analizzato dal front\/end e<\/p>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-266\" src=\"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-content\/uploads\/2021\/02\/vhost-diag1-300x163.png\" alt=\"\" width=\"583\" height=\"317\" srcset=\"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-content\/uploads\/2021\/02\/vhost-diag1-300x163.png 300w, https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-content\/uploads\/2021\/02\/vhost-diag1-768x418.png 768w, https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-content\/uploads\/2021\/02\/vhost-diag1.png 820w\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" \/><\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">&nbsp;<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Introduzione La necessit\u00e0 di ospitare pi\u00f9 siti web all&#8217;interno dello stesso server Web (es. Apache) \u00e8 piuttosto frequente ed \u00e8 una tecnica comunemente utilizzata dai fornitori di servizi hosting (es. &#8230;<\/p>\n","protected":false},"author":2,"featured_media":257,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,5],"tags":[6,7],"class_list":["post-157","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-informatica","category-web","tag-apache","tag-virtualhost"],"_links":{"self":[{"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/posts\/157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/comments?post=157"}],"version-history":[{"count":16,"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/posts\/157\/revisions"}],"predecessor-version":[{"id":271,"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/posts\/157\/revisions\/271"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/media\/257"}],"wp:attachment":[{"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/media?parent=157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/categories?post=157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cs.nervigalilei.edu.it\/wp-5.5.3\/wp-json\/wp\/v2\/tags?post=157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}