| <?xml version="1.0" encoding="UTF-8" ?> |
| <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> |
| <?xml-stylesheet type="text/xsl" href="./style/manual.es.xsl"?> |
| <!-- English Revision: 1673947 --> |
| <!-- Translated by: Luis Gil de Bernabé Pfeiffer --> |
| <!-- Reviewed by: Sergio Ramos --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manualpage metafile="bind.xml.meta"> |
| |
| <title>Mapeo de Direcciones y Puertos.</title> |
| |
| <summary> |
| <p>Configurando Apache HTTP Server para que escuche en una dirección y puertos específicos.</p> |
| </summary> |
| |
| <seealso><a href="vhosts/">Hosts Virtuales</a></seealso> |
| <seealso><a href="dns-caveats.html">Problemas de DNS</a></seealso> |
| |
| <section id="overview"> |
| <title>Visión General</title> |
| |
| <related> |
| <modulelist> |
| <module>core</module> |
| <module>mpm_common</module> |
| </modulelist> |
| <directivelist> |
| <directive module="core" type="section">VirtualHost</directive> |
| <directive module="mpm_common">Listen</directive> |
| </directivelist> |
| </related> |
| |
| |
| <p>Cuando httpd se ejecuta, se mapea a una dirección y un puerto en la |
| máquina local, y espera a recibir peticiones. Por defecto, escucha en |
| todas las direcciones de la máquina. Ahora bien, se le puede especificar |
| que escuche en un determinado puerto, o en una sola dirección IP especifica, |
| o una combinación de ambos. A menudo esto se combina con la característica |
| de los <a href="vhosts/">Hosts virtuales</a>, que determina como responde el |
| <code>httpd</code> a diferentes direcciones IP, nombres de máquinas y puertos.</p> |
| |
| <p>La directiva <directive module="mpm_common">Listen</directive> |
| le dice al servidor que acepte peticiones en el puerto o puertos que |
| se le especifiquen al servidor, o a combinaciones de direcciones y |
| puertos. Si sólo se especifica el número del puerto en la directiva |
| <directive module="mpm_common">Listen</directive>, el servidor escuchará en |
| ese puerto pero en todas las interfaces de red. |
| Si además del puerto se le especifica una dirección IP, el servidor escuchará |
| en el puerto y en la interfaz de red asociado a la dirección IP |
| que se le ha especificado en la directiva. Se pueden especificar |
| múltiples directivas <directive module="mpm_common">Listen</directive> para |
| especificar un determinado número de IP´s y puertos por donde el servidor escuchará. |
| El servidor por tanto, responderá a las peticiones en cualquiera de las IP´s y puertos |
| listados en la directiva.</p> |
| |
| <p>Por ejemplo, para hacer que el servidor escuche en ambos puertos 80 y 8080 en todas |
| sus interfaces de red, se usa lo siguiente:</p> |
| |
| <example> |
| <highlight language="config"> |
| Listen 80 |
| Listen 8000 |
| </highlight> |
| </example> |
| |
| <p>Para hacer que el servidor acepte peticiones en el puerto 80 en una sola interfaz de red, usaremos:</p> |
| |
| <example> |
| <highlight language="config"> |
| Listen 192.0.2.1:80 |
| Listen 192.0.2.5:8000 |
| </highlight> |
| </example> |
| |
| <p>Las direcciones IPv6 debrán ir entre '[ ]' corchetes como en el siguiente ejemplo:</p> |
| |
| <example> |
| <highlight language="config"> |
| Listen [2001:db8::a00:20ff:fea7:ccea]:80 |
| </highlight> |
| </example> |
| |
| <note type="warning"><p>Si se superponen directivas de tipo <directive |
| module="mpm_common">Listen</directive>, dará como resultado un error fatal |
| que impedirá que se inicie el servidor.</p> |
| |
| <example> |
| (48)Address already in use: make_sock: could not bind to address [::]:80 |
| </example> |
| |
| <p>Puede mirar el <a |
| href="http://wiki.apache.org/httpd/CouldNotBindToAddress">articulo de la wiki</a> |
| de consejos para solucionar problemas relacionados.</p> |
| |
| </note> |
| |
| </section> |
| |
| <section id="ipv6"> |
| <title>Consideraciones especiales con IPv6</title> |
| |
| <p>Un creciente número de plataformas implementan ya IPv6, y |
| <glossary>APR</glossary> soporta IPv6 en la mayoría de estas plataformas, |
| permitiendo así a httpd asignar sockets IPv6, y manejar las respuestas |
| enviadas a través de IPv6.</p> |
| |
| <p>Un factor bastante complejo para un administrador del httpd |
| es si un socket IPv6 puede o no manejar tanto conexiones IPv6 |
| como IPv4. El manejo por httpd de conexiones IPv4 con socket IPv6 |
| se debe al mapeo de direcciones IPv4 sobre IPv6, que |
| está permitido por defecto en muchas plataformas, pero no lo está |
| en sistemas FreeBSD, NetBSD y Open BSD, con el fin de que en estas |
| plataformas, cumpla con la política del sistema. |
| En los sistemas que no está permitido el mapeo por defecto, |
| existe un parámetro de <program>configure</program> especial |
| para cambiar éste comportamiento para httpd.</p> |
| |
| <p>Por otro lado, en algunas plataformas, como Linux y True64, la |
| <strong>única</strong> forma para el manejo de IPv4 e IPv6 al mismo |
| tiempo es mediante direcciones mapeadas. |
| Si quieres que <code>httpd</code> maneje amos tipos de conexiones IPv4 e IPv6 |
| con el mínimo de sockets, hay que especificar la opción |
| <code>--enable-v4-mapped</code> al <program> |
| configure</program>.</p> |
| |
| <p><code>--enable-v4-mapped</code> es la opción que está estipulada por defecto |
| en todos los sistemas menos en FreeBSD, NetBSD y Open BSD, por |
| lo que es probablemente como se compiló su httpd.</p> |
| |
| <p>Si lo que quiere es manejar sólo conexiones IPv4, independientemente de |
| lo que soporten <glossary>APR</glossary> y su plataforma, especifique |
| una dirección IPv4 por cada directiva |
| <directive module="mpm_common">Listen</directive>, como en el siguiente |
| ejemplo:</p> |
| |
| <example> |
| <highlight language="config"> |
| Listen 0.0.0.0:80 |
| Listen 192.0.2.1:80 |
| </highlight> |
| </example> |
| |
| <p>Si en cambio, su plataforma lo soporta, y lo que quiere es que su httpd |
| soporte tanto conexiones IPv4 como IPv6 en diferentes sockets (ejemplo.: para |
| deshabilitar mapeo de direcciones IPv4), especifique la opción |
| <code>--disable-v4-mapped</code> al <program> |
| configure</program>. <code>--disable-v4-mapped</code> es la opción por defecto |
| en FreeBSD, NetBSD y OpenBSD.</p> |
| </section> |
| |
| <section id="protocol"> |
| <title>Especificar el Protocolo en el Listen</title> |
| <p>El segundo argumento en la directiva <directive module="mpm_common">Listen</directive> |
| el <var>protocolo</var> que es opcional no es algo que se requiera en las configuraciones. |
| Si éste argumento no se especifica, <code>https</code> es el protocolo |
| usado por defecto en el puerto 443 y <code>http</code> para el resto. |
| El protocolo se utiliza para determinar que módulo deberá manejar la petición, |
| y se le aplicarán optimizaciones específicas del protocolo con la directiva |
| <directive module="core">AcceptFilter</directive>.</p> |
| |
| <p>Sólo necesitará especificar el protocolo si no está escuchando en un puerto |
| de los que son estándares, por ejemplo si ejecuta un sitio web <code>https</code> en el puerto 8443:</p> |
| |
| <example> |
| <highlight language="config"> |
| Listen 192.170.2.1:8443 https |
| </highlight> |
| </example> |
| </section> |
| |
| <section id="virtualhost"> |
| <title>Como Funciona en los Hosts Virtuales</title> |
| |
| <p> La directiva <directive |
| module="mpm_common">Listen</directive> no implementa los |
| Hosts Virtuales - solo le dice al servidor en que direcciones |
| y puertos debe escuchar. Si no hay directiva |
| <directive module="core" type="section">VirtualHost</directive> |
| en uso, el servidor se comportará de la misma manera para todas las |
| peticiones aceptadas. Ahora bien, |
| <directive module="core" type="section">VirtualHost</directive> |
| puede ser usado para especificar un comportamiento diferente en una o |
| varias direcciones o puertos. |
| Para implementar los Hosts Virtuales, antes se le tiene que decir al servidor |
| que direcciones y puertos van a ser usados. |
| Después de esto, se deberá especificar una sección de la directiva |
| <directive module="core" type="section">VirtualHost</directive> |
| especificando direcciones y puertos que se van a usar en el Host Virtual |
| Note que si se configura un |
| <directive module="core" type="section">VirtualHost</directive> |
| para una dirección y puerto en el que el servidor no está escuchando, |
| no se podrá acceder al Host Virtual.</p> |
| </section> |
| </manualpage> |