home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F278679_namebased.xml.es < prev    next >
Extensible Markup Language  |  2004-05-30  |  15KB  |  315 lines

  1. <?xml version='1.0' encoding='UTF-8' ?>
  2. <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
  3. <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
  4. <!-- English Revision: 1.5.2.9  -->
  5.  
  6. <!--
  7.  Copyright 2004 The Apache Software Foundation
  8.  
  9.  Licensed under the Apache License, Version 2.0 (the "License");
  10.  you may not use this file except in compliance with the License.
  11.  You may obtain a copy of the License at
  12.  
  13.      http://www.apache.org/licenses/LICENSE-2.0
  14.  
  15.  Unless required by applicable law or agreed to in writing, software
  16.  distributed under the License is distributed on an "AS IS" BASIS,
  17.  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18.  See the License for the specific language governing permissions and
  19.  limitations under the License.
  20. -->
  21.  
  22. <manualpage metafile="name-based.xml.meta">
  23. <parentdocument href="./">Hosting Virtual</parentdocument>
  24. <title>Soporte de Hosting Virtual basado en nombres</title>
  25.  
  26. <summary>
  27.     <p>Este documento describe cómo y cuándo debe usarse hosting virtual
  28.     basado en nombres.</p>
  29. </summary>
  30.  
  31. <seealso><a href="ip-based.html">Hosting virtual basado en
  32. IPs</a></seealso>
  33. <seealso><a href="details.html">Discusión en profundidad sobre el
  34. proceso de selección de host virtual</a></seealso>
  35. <seealso><a href="mass.html">Configuración dinámica de Hosting virtual masivo</a></seealso>
  36. <seealso><a href="examples.html">Ejemplos de hosting virtual para
  37. configuraciones típicas</a></seealso>
  38. <seealso><a href="examples.html#serverpath">Ejemplo de 
  39. configuración de ServerPath</a></seealso>
  40.  
  41. <section id="namevip"><title>Diferencias entre el hosting vitual
  42. basado en nombres y el basado en IPs</title>
  43.  
  44.     <p>El hosting virtual basado en IPs usa la dirección IP de la
  45.     conexión para determinar qué host virtual es el que tiene que
  46.     servir.  Por lo tanto, necesitará tener diferentes direcciones IP
  47.     para cada host. Si usa hosting virtual basado en nombres, el
  48.     servidor atiende al nombre de host que especifica el cliente en
  49.     las cabeceras de HTTP. Usando esta técnica, una sola dirección IP
  50.     puede ser compartida por muchos sitios web diferentes.</p>
  51.  
  52.     <p>El hosting virtual basado en nombres es normalmente más
  53.     sencillo, porque solo necesita configurar su servidor de DNS para
  54.     que localice la dirección IP correcta y entonces configurar Apache
  55.     para que reconozca los diferentes nombres de host. Usando hosting
  56.     virtual basado en nombres también se reduce la demanda de
  57.     direcciones IP, que empieza a ser un bien escaso.  Por lo tanto,
  58.     debe usar hosting virtual basado en nombres a no ser que haya
  59.     alguna razón especial por la cual tenga que elegir usar hosting
  60.     vitual basado en direcciones IP. Algunas de éstas razones pueden
  61.     ser:</p>
  62.  
  63.     <ul>
  64.         <li>Algunos clientes antiguos no son compatibles con el
  65.         hosting virtual basado en nombres.  Para que el hosting
  66.         virtual basado en nombres funcione, el cliente debe enviar la
  67.         cabecera de Host HTTP. Esto es necesario para HTTP/1.1, y está
  68.         implementado como extensión en casi todos los navegadores
  69.         actuales. Si necesita dar soporte a clientes obsoletos y usar
  70.         hosting virtual basado en nombres, al final de este documento
  71.         se describe una técnica para que pueda hacerlo.</li>
  72.  
  73.         <li>El hosting virtual basado en nombres no se puede usar
  74.         junto con SSL por la naturaleza del protocolo SSL.</li>
  75.  
  76.         <li>Algunos sistemas operativos y algunos elementos de red
  77.         tienen implementadas técnicas de gestión de ancho de banda que
  78.         no pueden diferenciar entre hosts a no ser que no estén en
  79.         diferentes direcciones IP.</li>
  80.     </ul>
  81.  
  82. </section>
  83.  
  84. <section id="using"><title>Cómo usar hosting vitual basado en
  85. nombres</title>
  86.  
  87. <related>
  88.     <modulelist>
  89.     <module>core</module>
  90.     </modulelist>
  91.  
  92.     <directivelist>
  93.     <directive module="core">DocumentRoot</directive>
  94.     <directive module="core">NameVirtualHost</directive>
  95.     <directive module="core">ServerAlias</directive>
  96.     <directive module="core">ServerName</directive>
  97.     <directive module="core">ServerPath</directive>
  98.     <directive module="core" type="section">VirtualHost</directive>
  99.     </directivelist>
  100. </related>
  101.  
  102.     <p>Para usar hosting virtual basado en nombres, debe especificar
  103.     en el servidor qué dirección IP (y posiblemente qué puerto) se va
  104.     a usar para atender las peticiones a los diferentes hosts.  Esto
  105.     se hace con la directiva <directive
  106.     module="core">NameVirtualHost</directive>. Normalmente, cualquiera
  107.     o todas las direcciones IP del servidor pueden usarse, también
  108.     puede usar <code>*</code> como argumento para la directiva
  109.     <directive module="core">NameVirtualHost</directive>. Si va a usar
  110.     más de un puerto (por ejemplo si va usar SSL) debe añadir un
  111.     puerto a cada argumento, por ejemplo <code>*:80</code>. Tenga en
  112.     cuenta que especificando una dirección IP en la directiva
  113.     <directive module="core">NameVirtualHost</directive> no hace que
  114.     el servidor escuche automáticamente en esa dirección IP. Consulte
  115.     la sección <a href="../bind.html">Especificar las direcciones y
  116.     puertos que usa Apache</a> para obtener más información. Además,
  117.     cualquier dirección IP especificada debe asociarse con un
  118.     dispositivo de red del servidor.</p>
  119.  
  120.     <p>El siguiente paso es crear un bloque <directive type="section"
  121.     module="core">VirtualHost</directive> para cada host diferente que
  122.     quiera alojar en el servidor. El argumento de la directiva
  123.     <directive type="section" module="core">VirtualHost</directive>
  124.     debe ser el mismo que el argumento de la directiva <directive
  125.     module="core">NameVirtualHost</directive> (por ejemplo, una
  126.     dirección IP, o un <code>*</code> para usar todas las direcciones
  127.     que tenga el servidor).  Dentro de cada bloque <directive
  128.     type="section" module="core">VirtualHost</directive>, necesitará
  129.     como mínimo una directiva <directive
  130.     module="core">ServerName</directive> para designar qué host se
  131.     sirve y una directiva <directive
  132.     module="core">DocumentRoot</directive> para indicar dónde están
  133.     los contenidos a servir dentro del sistema de ficheros.</p>
  134.  
  135.     <note><title>Añadir hosts vituales a un servidor web ya existente</title>     
  136.         <p>Si está añadiendo hosts virtuales a un servidor web ya
  137.         existente, debe crear también un bloque <directive
  138.         type="section" module="core" >VirtualHost</directive> para el
  139.         host que ya tenga funcionando. Los valores de las directivas
  140.         <directive module="core">ServerName</directive> y <directive
  141.         module="core" >DocumentRoot</directive> desde este nuevo host
  142.         virtual deben tener los mismos valores que los de las
  143.         directivas <directive module="core">ServerName</directive>
  144.         <directive module="core">DocumentRoot</directive>
  145.         globales. Ponga este host virtual como el primero en el
  146.         archivo de configuración para que sea el que actúe como host
  147.         por defecto.</p>
  148.     </note>
  149.  
  150.     <p>Por ejemplo, suponga que está sirviendo el dominio
  151.     <code>www.domain.tld</code> y quiere añadir el host virtual
  152.     <code>www.otherdomain.tld</code>, que apunta a la misma dirección
  153.     IP. Entonces, lo único que tiene que hacer es añadir lo siguiente
  154.     al fichero <code>httpd.conf</code>:</p>
  155.  
  156.     <example>
  157.         NameVirtualHost *:80<br />
  158.         <br />
  159.         <VirtualHost *:80><br />
  160.         <indent>
  161.             ServerName www.domain.tld<br />
  162.             ServerAlias domain.tld *.domain.tld<br />
  163.             DocumentRoot /www/domain<br />
  164.         </indent>
  165.         </VirtualHost><br />
  166.         <br />
  167.         <VirtualHost *:80><br />
  168.         <indent>ServerName www.otherdomain.tld<br />
  169.             DocumentRoot /www/otherdomain<br />
  170.         </indent>
  171.         </VirtualHost><br />
  172.     </example>
  173.  
  174.     <p>También puede optar por especificar una dirección IP
  175.     explícitamente en lugar de usar un <code>*</code> en las
  176.     directivas <directive module="core" >NameVirtualHost</directive> y
  177.     <directive type="section" module="core"
  178.     >VirtualHost</directive>. Por ejemplo, puede hacer esto
  179.     para hacer funcionar diferentes hosts virtuales basados en nombres
  180.     en una dirección IP, o basados en IPs, o un conjunto de hosts
  181.     virtuales basados en nombres en otra dirección.</p>
  182.  
  183.     <p>También puede que quiera que se acceda a un determinado sitio
  184.     web usando diferentes nombres. Esto es posible con la directiva
  185.     <directive module="core">ServerAlias</directive>, puesta dentro de
  186.     la sección <directive type="section" module="core"
  187.     >VirtualHost</directive>. Por ejemplo, en el primer bloque
  188.     <directive type="section" module="core">VirtualHost</directive> de
  189.     arriba, la directiva <directive
  190.     module="core">ServerAlias</directive> indica la lista de nombres
  191.     que pueden usarse para acceder a un mismo sitio web:</p>
  192.  
  193.     <example>
  194.         ServerAlias domain.tld *.domain.tld
  195.     </example>
  196.  
  197.     <p>entonces las peticiones para todos los hosts en el dominio
  198.     <code>domain.tld</code> serán servidas por el host virtual
  199.     <code>www.domain.tld</code>. Los carácteres comodines
  200.     <code>*</code> y <code>?</code> pueden usarse para encontrar
  201.     equivalencias con los nombres.  Por supuesto, no puede inventarse
  202.     nombres y ponerlos en la directiva <directive
  203.     module="core">ServerName</directive> o
  204.     <code>ServerAlias</code>. Primero debe tener su servidor de DNS
  205.     debidamente configurado para que pueda hacer corresponder esos
  206.     nombres con una dirección IP de su servidor.</p>
  207.  
  208.     <p>Para terminar, puede mejorar el rendimiento de la configuración
  209.     de los hosts virtuales poniendo otras directivas dentro de las
  210.     secciones <directive type="section"
  211.     module="core">VirtualHost</directive>. La mayor parte de las
  212.     directivas pueden ponerse en esos containers y cambiarán solo la
  213.     configuración del host virtual al que se refieran. Para ver si una
  214.     directiva en particualar puede usarse así, consulte el <a
  215.     href="../mod/directive-dict.html#Context">Contexto</a> de la
  216.     directiva. Las directivas de configuración especificadas en el
  217.     <em>contexto del servidor principal</em> (fuera de
  218.     cualquier sección <directive type="section"
  219.     module="core">VirtualHost</directive>) se usan única y
  220.     exclusivamente si sus valores no son sustituidos por alguno de los
  221.     parámetros de configuración del host virtual.</p>
  222.  
  223.     <p>Cuando llega una petición, el servidor primero verifica si se
  224.     está usando una dirección IP que coincide con el valor de la
  225.     directiva <directive module="core"
  226.     >NameVirtualHost</directive>. Si es el caso, mirará en cada
  227.     sección <directive type="section"
  228.     module="core">VirtualHost</directive> cuya IP coincida e intentará
  229.     encontrar si el valor de la directiva <directive module="core"
  230.     >ServerName</directive> o de la directiva <code>ServerAlias</code>
  231.     coincide con el nombre del sitio web de la petición. Si encuentra
  232.     una coincidencia, usa la configuración de ese servidor. Si no la
  233.     encuentra, usa <strong>el primer host virtual de la lista</strong>
  234.     cuya dirección IP coincida con el de la petición.</p>
  235.  
  236.     <p>Como consecuencia, el primer host virtual de la lista es el que
  237.     se usa <em>por defecto</em>.  La directiva <directive
  238.     module="core">DocumentRoot</directive> del <em>servidor
  239.     principal</em> no se usará <strong>nunca</strong> cuando una
  240.     dirección IP coincida con el valor de la directiva <directive
  241.     module="core">NameVirtualHost</directive>. Si quiere usar una
  242.     configuración especial para peticiones que no coinciden con ningún
  243.     host virtual en concreto, ponga esa configuración en una sección
  244.     <directive type="section" module="core">VirtualHost</directive> y
  245.     póngala la primera en el fichero de configuración.</p>
  246.  
  247. </section>
  248.  
  249. <section id="compat"><title>Compatibilidad con navegadores
  250. antiguos</title>
  251.  
  252.     <p>Como se dijo antes, hay algunos clientes que no envían los
  253.     datos necesarios para que funcione correctamente el hosting
  254.     virtual basado en nombres. Estos clientes van a recibir siempre
  255.     como respuesta a sus peticiones, páginas del primer host virtual
  256.     que haya en la lista para esa dirección IP (el host virtual
  257.     <cite>primario</cite> basado en nombres).</p>
  258.  
  259.     <note><title>¿Cómo de antiguo?</title> 
  260.     <p>Tenga en cuenta que cuando decimos antiguo, queremos decir
  261.     realmente antiguo. Es muy poco probable que encuentre uno de esos
  262.     navegadores en uso todavía. Todas las versiones actuales de
  263.     cualquier navegador envían la cabecera <code>Host</code> que se
  264.     necesita para que el hosting virtual basado en nombres
  265.     funcione.</p>
  266.     </note>
  267.  
  268.     <p>Existe una manera de evitar este problema con la directiva
  269.     <directive module="core">ServerPath</directive>, aunque es un poco
  270.     complicada:</p>
  271.  
  272.     <p>Ejemplo de configuración:</p>
  273.  
  274.     <example>
  275.         NameVirtualHost 111.22.33.44<br />
  276.         <br />
  277.         <VirtualHost 111.22.33.44><br />
  278.         <indent>
  279.             ServerName www.domain.tld<br />
  280.             ServerPath /domain<br />
  281.             DocumentRoot /web/domain<br />
  282.         </indent>
  283.         </VirtualHost><br />
  284.     </example>
  285.  
  286.     <p>¿Qué significa esto? Esto significa que una petición de
  287.     cualquier URI que empiece por "<code>/domain</code>" será servida
  288.     por el host virtual <code>www.domain.tld</code>. Esto significa
  289.     que las páginas pueden accederse como
  290.     <code>http://www.domain.tld/domain/</code> por todos los clientes,
  291.     aunque los clientes que envíen una cabecera <code>Host:</code>
  292.     pueden también acceder con
  293.     <code>http://www.domain.tld/</code>.</p>
  294.  
  295.     <p>Para hacer que esto funcione, ponga un enlace en la página de
  296.     su host virtual primario a
  297.     <code>http://www.domain.tld/domain/</code>. Entonces, en las
  298.     páginas del host virtual, asegúrese de que usa o enlaces relativos
  299.     (<em>por ejemplo</em>, "<code>file.html</code>" o
  300.     "<code>../icons/image.gif</code>") o enlaces que contengan el
  301.     <code>/domain/</code> anterior (<em>por ejemplo</em>,
  302.     "<code>http://www.domain.tld/domain/misc/file.html</code>" o
  303.     "<code>/domain/misc/file.html</code>").</p>
  304.  
  305.     <p>Esto requiere un poco de disciplina, pero siguiendo estas
  306.     reglas, puede asegurarse, casi en todos los casos, de que las
  307.     páginas de su sitio web podrán ser accedidas desde cualquier
  308.     navegador, ya sea nuevo o antiguo.</p>
  309.  
  310. </section>
  311. </manualpage>
  312.  
  313.  
  314.  
  315.