1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>Soporte de Hosting Virtual basado en nombres - Servidor HTTP Apache</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/directives.html">Directivas</a> | <a href="../faq/">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa de este sitio web</a></p>
15 <p class="apache">Versión 2.0 del Servidor HTTP Apache</p>
16 <img alt="" src="../images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
19 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="../">Versión 2.0</a> > <a href="./">Hosting Virtual</a></div><div id="page-content"><div id="preamble"><h1>Soporte de Hosting Virtual basado en nombres</h1>
21 <p><span>Idiomas disponibles: </span><a href="../de/vhosts/name-based.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
22 <a href="../en/vhosts/name-based.html" hreflang="en" rel="alternate" title="English"> en </a> |
23 <a href="../es/vhosts/name-based.html" title="Español"> es </a> |
24 <a href="../ja/vhosts/name-based.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
25 <a href="../ko/vhosts/name-based.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
26 <a href="../tr/vhosts/name-based.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
29 <p>Este documento describe cómo y cuándo debe usarse hosting virtual
30 basado en nombres.</p>
32 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#namevip">Diferencias entre el hosting vitual
33 basado en nombres y el basado en IPs</a></li>
34 <li><img alt="" src="../images/down.gif" /> <a href="#using">Cómo usar hosting vitual basado en
36 <li><img alt="" src="../images/down.gif" /> <a href="#compat">Compatibilidad con navegadores
38 </ul><h3>Consulte también</h3><ul class="seealso"><li><a href="ip-based.html">Hosting virtual basado en
39 IPs</a></li><li><a href="details.html">Discusión en profundidad sobre el
40 proceso de selección de host virtual</a></li><li><a href="mass.html">Configuración dinámica de Hosting virtual masivo</a></li><li><a href="examples.html">Ejemplos de hosting virtual para
41 configuraciones típicas</a></li><li><a href="examples.html#serverpath">Ejemplo de
42 configuración de ServerPath</a></li></ul></div>
43 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
45 <h2><a name="namevip" id="namevip">Diferencias entre el hosting vitual
46 basado en nombres y el basado en IPs</a></h2>
48 <p>El hosting virtual basado en IPs usa la dirección IP de la
49 conexión para determinar qué host virtual es el que tiene que
50 servir. Por lo tanto, necesitará tener diferentes direcciones IP
51 para cada host. Si usa hosting virtual basado en nombres, el
52 servidor atiende al nombre de host que especifica el cliente en
53 las cabeceras de HTTP. Usando esta técnica, una sola dirección IP
54 puede ser compartida por muchos sitios web diferentes.</p>
56 <p>El hosting virtual basado en nombres es normalmente más
57 sencillo, porque solo necesita configurar su servidor de DNS para
58 que localice la dirección IP correcta y entonces configurar Apache
59 para que reconozca los diferentes nombres de host. Usando hosting
60 virtual basado en nombres también se reduce la demanda de
61 direcciones IP, que empieza a ser un bien escaso. Por lo tanto,
62 debe usar hosting virtual basado en nombres a no ser que haya
63 alguna razón especial por la cual tenga que elegir usar hosting
64 vitual basado en direcciones IP. Algunas de éstas razones pueden
68 <li>Algunos clientes antiguos no son compatibles con el
69 hosting virtual basado en nombres. Para que el hosting
70 virtual basado en nombres funcione, el cliente debe enviar la
71 cabecera de Host HTTP. Esto es necesario para HTTP/1.1, y está
72 implementado como extensión en casi todos los navegadores
73 actuales. Si necesita dar soporte a clientes obsoletos y usar
74 hosting virtual basado en nombres, al final de este documento
75 se describe una técnica para que pueda hacerlo.</li>
77 <li>El hosting virtual basado en nombres no se puede usar
78 junto con SSL por la naturaleza del protocolo SSL.</li>
80 <li>Algunos sistemas operativos y algunos elementos de red
81 tienen implementadas técnicas de gestión de ancho de banda que
82 no pueden diferenciar entre hosts a no ser que no estén en
83 diferentes direcciones IP.</li>
86 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
88 <h2><a name="using" id="using">Cómo usar hosting vitual basado en
91 <table class="related"><tr><th>Módulos Relacionados</th><th>Directivas Relacionadas</th></tr><tr><td><ul><li><code class="module"><a href="../mod/core.html">core</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code></li><li><code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code></li><li><code class="directive"><a href="../mod/core.html#servername">ServerName</a></code></li><li><code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code></li><li><code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code></li></ul></td></tr></table>
93 <p>Para usar hosting virtual basado en nombres, debe especificar
94 en el servidor qué dirección IP (y posiblemente qué puerto) se va
95 a usar para atender las peticiones a los diferentes hosts. Esto
96 se hace con la directiva <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Normalmente, cualquiera
97 o todas las direcciones IP del servidor pueden usarse, también
98 puede usar <code>*</code> como argumento para la directiva
99 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si va a usar
100 más de un puerto (por ejemplo si va usar SSL) debe añadir un
101 puerto a cada argumento, por ejemplo <code>*:80</code>. Tenga en
102 cuenta que especificando una dirección IP en la directiva
103 <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> no hace que
104 el servidor escuche automáticamente en esa dirección IP. Consulte
105 la sección <a href="../bind.html">Especificar las direcciones y
106 puertos que usa Apache</a> para obtener más información. Además,
107 cualquier dirección IP especificada debe asociarse con un
108 dispositivo de red del servidor.</p>
110 <p>El siguiente paso es crear un bloque <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> para cada host diferente que
111 quiera alojar en el servidor. El argumento de la directiva
112 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
113 debe ser el mismo que el argumento de la directiva <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> (por ejemplo, una
114 dirección IP, o un <code>*</code> para usar todas las direcciones
115 que tenga el servidor). Dentro de cada bloque <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>, necesitará
116 como mínimo una directiva <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> para designar qué host se
117 sirve y una directiva <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> para indicar dónde están
118 los contenidos a servir dentro del sistema de ficheros.</p>
120 <div class="note"><h3>Añadir hosts vituales a un servidor web ya existente</h3>
121 <p>Si está añadiendo hosts virtuales a un servidor web ya
122 existente, debe crear también un bloque <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> para el
123 host que ya tenga funcionando. Los valores de las directivas
124 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> y <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> desde este nuevo host
125 virtual deben tener los mismos valores que los de las
126 directivas <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>
127 <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>
128 globales. Ponga este host virtual como el primero en el
129 archivo de configuración para que sea el que actúe como host
133 <p>Por ejemplo, suponga que está sirviendo el dominio
134 <code>www.domain.tld</code> y quiere añadir el host virtual
135 <code>www.otherdomain.tld</code>, que apunta a la misma dirección
136 IP. Entonces, lo único que tiene que hacer es añadir lo siguiente
137 al fichero <code>httpd.conf</code>:</p>
139 <div class="example"><p><code>
140 NameVirtualHost *:80<br />
142 <VirtualHost *:80><br />
143 <span class="indent">
144 ServerName www.domain.tld<br />
145 ServerAlias domain.tld *.domain.tld<br />
146 DocumentRoot /www/domain<br />
148 </VirtualHost><br />
150 <VirtualHost *:80><br />
151 <span class="indent">ServerName www.otherdomain.tld<br />
152 DocumentRoot /www/otherdomain<br />
154 </VirtualHost><br />
157 <p>También puede optar por especificar una dirección IP
158 explícitamente en lugar de usar un <code>*</code> en las
159 directivas <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> y
160 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. Por ejemplo, puede hacer esto
161 para hacer funcionar diferentes hosts virtuales basados en nombres
162 en una dirección IP, o basados en IPs, o un conjunto de hosts
163 virtuales basados en nombres en otra dirección.</p>
165 <p>También puede que quiera que se acceda a un determinado sitio
166 web usando diferentes nombres. Esto es posible con la directiva
167 <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>, puesta dentro de
168 la sección <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. Por ejemplo, en el primer bloque
169 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> de
170 arriba, la directiva <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> indica la lista de nombres
171 que pueden usarse para acceder a un mismo sitio web:</p>
173 <div class="example"><p><code>
174 ServerAlias domain.tld *.domain.tld
177 <p>entonces las peticiones para todos los hosts en el dominio
178 <code>domain.tld</code> serán servidas por el host virtual
179 <code>www.domain.tld</code>. Los carácteres comodines
180 <code>*</code> y <code>?</code> pueden usarse para encontrar
181 equivalencias con los nombres. Por supuesto, no puede inventarse
182 nombres y ponerlos en la directiva <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> o
183 <code>ServerAlias</code>. Primero debe tener su servidor de DNS
184 debidamente configurado para que pueda hacer corresponder esos
185 nombres con una dirección IP de su servidor.</p>
187 <p>Para terminar, puede mejorar el rendimiento de la configuración
188 de los hosts virtuales poniendo otras directivas dentro de las
189 secciones <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. La mayor parte de las
190 directivas pueden ponerse en esos containers y cambiarán solo la
191 configuración del host virtual al que se refieran. Para ver si una
192 directiva en particualar puede usarse así, consulte el <a href="../mod/directive-dict.html#Context">Contexto</a> de la
193 directiva. Las directivas de configuración especificadas en el
194 <em>contexto del servidor principal</em> (fuera de
195 cualquier sección <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>) se usan única y
196 exclusivamente si sus valores no son sustituidos por alguno de los
197 parámetros de configuración del host virtual.</p>
199 <p>Cuando llega una petición, el servidor primero verifica si se
200 está usando una dirección IP que coincide con el valor de la
201 directiva <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si es el caso, mirará en cada
202 sección <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> cuya IP coincida e intentará
203 encontrar si el valor de la directiva <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> o de la directiva <code>ServerAlias</code>
204 coincide con el nombre del sitio web de la petición. Si encuentra
205 una coincidencia, usa la configuración de ese servidor. Si no la
206 encuentra, usa <strong>el primer host virtual de la lista</strong>
207 cuya dirección IP coincida con el de la petición.</p>
209 <p>Como consecuencia, el primer host virtual de la lista es el que
210 se usa <em>por defecto</em>. La directiva <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> del <em>servidor
211 principal</em> no se usará <strong>nunca</strong> cuando una
212 dirección IP coincida con el valor de la directiva <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si quiere usar una
213 configuración especial para peticiones que no coinciden con ningún
214 host virtual en concreto, ponga esa configuración en una sección
215 <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> y
216 póngala la primera en el fichero de configuración.</p>
218 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
219 <div class="section">
220 <h2><a name="compat" id="compat">Compatibilidad con navegadores
223 <p>Como se dijo antes, hay algunos clientes que no envían los
224 datos necesarios para que funcione correctamente el hosting
225 virtual basado en nombres. Estos clientes van a recibir siempre
226 como respuesta a sus peticiones, páginas del primer host virtual
227 que haya en la lista para esa dirección IP (el host virtual
228 <cite>primario</cite> basado en nombres).</p>
230 <div class="note"><h3>¿Cómo de antiguo?</h3>
231 <p>Tenga en cuenta que cuando decimos antiguo, queremos decir
232 realmente antiguo. Es muy poco probable que encuentre uno de esos
233 navegadores en uso todavía. Todas las versiones actuales de
234 cualquier navegador envían la cabecera <code>Host</code> que se
235 necesita para que el hosting virtual basado en nombres
239 <p>Existe una manera de evitar este problema con la directiva
240 <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>, aunque es un poco
243 <p>Ejemplo de configuración:</p>
245 <div class="example"><p><code>
246 NameVirtualHost 111.22.33.44<br />
248 <VirtualHost 111.22.33.44><br />
249 <span class="indent">
250 ServerName www.domain.tld<br />
251 ServerPath /domain<br />
252 DocumentRoot /web/domain<br />
254 </VirtualHost><br />
257 <p>¿Qué significa esto? Esto significa que una petición de
258 cualquier URI que empiece por "<code>/domain</code>" será servida
259 por el host virtual <code>www.domain.tld</code>. Esto significa
260 que las páginas pueden accederse como
261 <code>http://www.domain.tld/domain/</code> por todos los clientes,
262 aunque los clientes que envíen una cabecera <code>Host:</code>
263 pueden también acceder con
264 <code>http://www.domain.tld/</code>.</p>
266 <p>Para hacer que esto funcione, ponga un enlace en la página de
267 su host virtual primario a
268 <code>http://www.domain.tld/domain/</code>. Entonces, en las
269 páginas del host virtual, asegúrese de que usa o enlaces relativos
270 (<em>por ejemplo</em>, "<code>file.html</code>" o
271 "<code>../icons/image.gif</code>") o enlaces que contengan el
272 <code>/domain/</code> anterior (<em>por ejemplo</em>,
273 "<code>http://www.domain.tld/domain/misc/file.html</code>" o
274 "<code>/domain/misc/file.html</code>").</p>
276 <p>Esto requiere un poco de disciplina, pero siguiendo estas
277 reglas, puede asegurarse, casi en todos los casos, de que las
278 páginas de su sitio web podrán ser accedidas desde cualquier
279 navegador, ya sea nuevo o antiguo.</p>
282 <div class="bottomlang">
283 <p><span>Idiomas disponibles: </span><a href="../de/vhosts/name-based.html" hreflang="de" rel="alternate" title="Deutsch"> de </a> |
284 <a href="../en/vhosts/name-based.html" hreflang="en" rel="alternate" title="English"> en </a> |
285 <a href="../es/vhosts/name-based.html" title="Español"> es </a> |
286 <a href="../ja/vhosts/name-based.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
287 <a href="../ko/vhosts/name-based.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
288 <a href="../tr/vhosts/name-based.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
289 </div><div id="footer">
290 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
291 <p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/directives.html">Directivas</a> | <a href="../faq/">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa de este sitio web</a></p></div>