11 votos

Límite de Apache a una sola IP

Tengo un servidor con un montón de direcciones IP, y solo quiero Apache escuchando en uno de ellos. No suena como una cosa difícil de hacer, y yo lo he hecho una vez antes de hace un rato, pero estoy teniendo algunos problemas esta vez. En primer lugar, aquí es donde estoy ahora, a mi entender:

Cada lugar de Apache está escuchando en el puerto 80, se escucha sólo en la IP correcta.

/etc/apache2$ grep -R ":80" .
./sites-available/default:<VirtualHost 192.168.0.82:80>
./httpd.conf:<VirtualHost 192.168.0.82:80>
./ports.conf:NameVirtualHost 192.168.0.82:80
./sites-enabled/000-default:<VirtualHost 192.168.0.82:80>

No hay ninguna mención de la escucha en 0.0.0.0.

/etc/apache2$ grep -R "0\.0\.0\.0" .

Y sin embargo... de Apache se niega a iniciar.

/etc/apache2$ sudo /etc/init.d/apache2 start
 * Starting web server apache2
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
                                                                         [fail]

En caso de que alguien pregunta, no estoy obligado a la dirección:

/etc/apache2$ sudo netstat -nap | grep :80
tcp        0      0 192.168.0.83:80       0.0.0.0:*        LISTEN      2822/node

El registro de errores en /var/log/apache2/error.log dice:

[Wed Aug 08 03:30:18 2012] [notice] caught SIGTERM, shutting down

He perdido un lugar en Apache config? Hay algo que no estoy recordando a buscar? ¿Por qué no es tan simple como yo la recordaba?

17voto

EtienneT Puntos 1552

Apache se une a todo por defecto, incluso si se especifica ciertas IP('s) para ejecutar NameVirtualHost.

Agregar esta en sus puertos.conf:

Listen 192.168.0.82:80

Referencia: http://httpd.apache.org/docs/2.2/bind.html

3voto

cjc Puntos 17092

Buscar en la /etc/apache2/ports.conf archivo.

Usted encontrará una directiva como:

Listen 80

El comentario sobre CentOS cajas describe esta opción:

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80

Para lo que usted desea, cambie el Listen 80 línea Listen 192.168.0.82:80.

No son capaces de iniciar Apache, ahora porque se está tratando de enlazar el puerto 80 en todas las interfaces (0.0.0.0 designación), y usted tiene node escucha en 192.168.0.83:80.

La IP en el host virtual bloques significa que determinado host virtual responderá a las solicitudes que vienen de esa dirección IP. No especifica cómo Apache se unen a las interfaces que ve.

3voto

luis.espinal Puntos 211

Utilice el siguiente según el Apache docs:

Escuchar 192.168.0.82:80

En algunas circunstancias (no todos), se podía ir un poco más allá y hacer esto:

Escuchar some_name_in_my_localhost:80

Que forma de hacer configuraciones de apache portable en situaciones cuando usted tiene un servidor Apache de la granja. Hay pros y los contras a este (al igual que con todo lo demás.)

2voto

stderr Puntos 561

Escuchar la directiva es lo que estás buscando:

Listen 192.168.0.82:80

Más información en la documentación.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: