mirror of
https://github.com/apache/httpd.git
synced 2025-08-06 11:06:17 +00:00

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1842058 13f79535-47bb-0310-9956-ffa450edef68
250 lines
10 KiB
JavaScript
250 lines
10 KiB
JavaScript
<?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: 1816110 -->
|
||
<!-- Translated by: Luis Gil de Bernabé Pfeiffer lgilbernabe@apache.org-->
|
||
<!-- 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 deberá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="reload">
|
||
<title>Cambiar configuración de escucha al reiniciar</title>
|
||
|
||
<p>Cuando httpd se reinicia, hay que tener especial consideración en los
|
||
cambios que se realicen a la directiva <directive module="mpm_common">Listen</directive>.
|
||
Durante un reinicio, httpd mantiene los puertos (como en la configuración original)
|
||
para evitar generar errores del tipo "Conexión rechazada" para cualquier intento
|
||
nuevo de establecer la conexión contra el servidor. Si se realiza algún cambio
|
||
al conjunto de la directiva <directive module="mpm_common">Listen</directive>, es probable que entre en conflicto con la configuración antigua, la configuración fallará y el servidor
|
||
no se iniciará.
|
||
</p>
|
||
|
||
<p>Por ejemplo, cambiar de la configuración:</p>
|
||
|
||
<example>
|
||
<highlight language="config">
|
||
Listen 127.0.0.1:80
|
||
</highlight>
|
||
</example>
|
||
|
||
<p>a la siguiente configuración, es probable que falle, porque mapear el puerto 80
|
||
a todas las direcciones, entra en conflicto con sólo mapear el puerto 80 a
|
||
la 127.0.0.1.</p>
|
||
|
||
<example>
|
||
<highlight language="config">
|
||
Listen 80
|
||
</highlight>
|
||
</example>
|
||
|
||
<p>Para que este tipo de cambios surtan efecto, es necesario parar el servidor,
|
||
y después iniciarlo.</p>
|
||
|
||
</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>
|