1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.es.xsl"?>
4 <!-- English Revision: 1673947 -->
5 <!-- Translated by: Luis Gil de Bernabé Pfeiffer -->
6 <!-- Reviewed by: Sergio Ramos -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <manualpage metafile="bind.xml.meta">
27 <title>Mapeo de Direcciones y Puertos.</title>
30 <p>Configurando Apache HTTP Server para que escuche en una dirección y puertos específicos.</p>
33 <seealso><a href="vhosts/">Hosts Virtuales</a></seealso>
34 <seealso><a href="dns-caveats.html">Problemas de DNS</a></seealso>
36 <section id="overview">
37 <title>Visión General</title>
42 <module>mpm_common</module>
45 <directive module="core" type="section">VirtualHost</directive>
46 <directive module="mpm_common">Listen</directive>
51 <p>Cuando httpd se ejecuta, se mapea a una dirección y un puerto en la
52 máquina local, y espera a recibir peticiones. Por defecto, escucha en
53 todas las direcciones de la máquina. Ahora bien, se le puede especificar
54 que escuche en un determinado puerto, o en una sola dirección IP especifica,
55 o una combinación de ambos. A menudo esto se combina con la característica
56 de los <a href="vhosts/">Hosts virtuales</a>, que determina como responde el
57 <code>httpd</code> a diferentes direcciones IP, nombres de máquinas y puertos.</p>
59 <p>La directiva <directive module="mpm_common">Listen</directive>
60 le dice al servidor que acepte peticiones en el puerto o puertos que
61 se le especifiquen al servidor, o a combinaciones de direcciones y
62 puertos. Si sólo se especifica el número del puerto en la directiva
63 <directive module="mpm_common">Listen</directive>, el servidor escuchará en
64 ese puerto pero en todas las interfaces de red.
65 Si además del puerto se le especifica una dirección IP, el servidor escuchará
66 en el puerto y en la interfaz de red asociado a la dirección IP
67 que se le ha especificado en la directiva. Se pueden especificar
68 múltiples directivas <directive module="mpm_common">Listen</directive> para
69 especificar un determinado número de IP´s y puertos por donde el servidor escuchará.
70 El servidor por tanto, responderá a las peticiones en cualquiera de las IP´s y puertos
71 listados en la directiva.</p>
73 <p>Por ejemplo, para hacer que el servidor escuche en ambos puertos 80 y 8080 en todas
74 sus interfaces de red, se usa lo siguiente:</p>
77 <highlight language="config">
83 <p>Para hacer que el servidor acepte peticiones en el puerto 80 en una sola interfaz de red, usaremos:</p>
86 <highlight language="config">
92 <p>Las direcciones IPv6 debrán ir entre '[ ]' corchetes como en el siguiente ejemplo:</p>
95 <highlight language="config">
96 Listen [2001:db8::a00:20ff:fea7:ccea]:80
100 <note type="warning"><p>Si se superponen directivas de tipo <directive
101 module="mpm_common">Listen</directive>, dará como resultado un error fatal
102 que impedirá que se inicie el servidor.</p>
105 (48)Address already in use: make_sock: could not bind to address [::]:80
109 href="http://wiki.apache.org/httpd/CouldNotBindToAddress">articulo de la wiki</a>
110 de consejos para solucionar problemas relacionados.</p>
117 <title>Consideraciones especiales con IPv6</title>
119 <p>Un creciente número de plataformas implementan ya IPv6, y
120 <glossary>APR</glossary> soporta IPv6 en la mayoría de estas plataformas,
121 permitiendo así a httpd asignar sockets IPv6, y manejar las respuestas
122 enviadas a través de IPv6.</p>
124 <p>Un factor bastante complejo para un administrador del httpd
125 es si un socket IPv6 puede o no manejar tanto conexiones IPv6
126 como IPv4. El manejo por httpd de conexiones IPv4 con socket IPv6
127 se debe al mapeo de direcciones IPv4 sobre IPv6, que
128 está permitido por defecto en muchas plataformas, pero no lo está
129 en sistemas FreeBSD, NetBSD y Open BSD, con el fin de que en estas
130 plataformas, cumpla con la política del sistema.
131 En los sistemas que no está permitido el mapeo por defecto,
132 existe un parámetro de <program>configure</program> especial
133 para cambiar éste comportamiento para httpd.</p>
135 <p>Por otro lado, en algunas plataformas, como Linux y True64, la
136 <strong>única</strong> forma para el manejo de IPv4 e IPv6 al mismo
137 tiempo es mediante direcciones mapeadas.
138 Si quieres que <code>httpd</code> maneje amos tipos de conexiones IPv4 e IPv6
139 con el mínimo de sockets, hay que especificar la opción
140 <code>--enable-v4-mapped</code> al <program>
141 configure</program>.</p>
143 <p><code>--enable-v4-mapped</code> es la opción que está estipulada por defecto
144 en todos los sistemas menos en FreeBSD, NetBSD y Open BSD, por
145 lo que es probablemente como se compiló su httpd.</p>
147 <p>Si lo que quiere es manejar sólo conexiones IPv4, independientemente de
148 lo que soporten <glossary>APR</glossary> y su plataforma, especifique
149 una dirección IPv4 por cada directiva
150 <directive module="mpm_common">Listen</directive>, como en el siguiente
154 <highlight language="config">
160 <p>Si en cambio, su plataforma lo soporta, y lo que quiere es que su httpd
161 soporte tanto conexiones IPv4 como IPv6 en diferentes sockets (ejemplo.: para
162 deshabilitar mapeo de direcciones IPv4), especifique la opción
163 <code>--disable-v4-mapped</code> al <program>
164 configure</program>. <code>--disable-v4-mapped</code> es la opción por defecto
165 en FreeBSD, NetBSD y OpenBSD.</p>
168 <section id="protocol">
169 <title>Especificar el Protocolo en el Listen</title>
170 <p>El segundo argumento en la directiva <directive module="mpm_common">Listen</directive>
171 el <var>protocolo</var> que es opcional no es algo que se requiera en las configuraciones.
172 Si éste argumento no se especifica, <code>https</code> es el protocolo
173 usado por defecto en el puerto 443 y <code>http</code> para el resto.
174 El protocolo se utiliza para determinar que módulo deberá manejar la petición,
175 y se le aplicarán optimizaciones específicas del protocolo con la directiva
176 <directive module="core">AcceptFilter</directive>.</p>
178 <p>Sólo necesitará especificar el protocolo si no está escuchando en un puerto
179 de los que son estándares, por ejemplo si ejecuta un sitio web <code>https</code> en el puerto 8443:</p>
182 <highlight language="config">
183 Listen 192.170.2.1:8443 https
188 <section id="virtualhost">
189 <title>Como Funciona en los Hosts Virtuales</title>
191 <p> La directiva <directive
192 module="mpm_common">Listen</directive> no implementa los
193 Hosts Virtuales - solo le dice al servidor en que direcciones
194 y puertos debe escuchar. Si no hay directiva
195 <directive module="core" type="section">VirtualHost</directive>
196 en uso, el servidor se comportará de la misma manera para todas las
197 peticiones aceptadas. Ahora bien,
198 <directive module="core" type="section">VirtualHost</directive>
199 puede ser usado para especificar un comportamiento diferente en una o
200 varias direcciones o puertos.
201 Para implementar los Hosts Virtuales, antes se le tiene que decir al servidor
202 que direcciones y puertos van a ser usados.
203 Después de esto, se deberá especificar una sección de la directiva
204 <directive module="core" type="section">VirtualHost</directive>
205 especificando direcciones y puertos que se van a usar en el Host Virtual
206 Note que si se configura un
207 <directive module="core" type="section">VirtualHost</directive>
208 para una dirección y puerto en el que el servidor no está escuchando,
209 no se podrá acceder al Host Virtual.</p>