O Apache se conecta a tudo por padrão, mesmo se você especificar determinados IP's para executar o NameVirtualHost.
Adicione isto em seu ports.conf:
Listen 192.168.0.82:80
Referência: link
Eu tenho um servidor com vários endereços IP e só quero que o Apache ouça um deles. Não parece uma coisa difícil de fazer, e já fiz isso há um tempo, mas estou tendo alguns problemas desta vez. Primeiro, aqui é onde estou agora, no meu entendimento:
Todo lugar em que o Apache está escutando a porta 80, está ouvindo apenas o IP correto.
/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>
Não há menção de ouvir em 0.0.0.0.
/etc/apache2$ grep -R "0\.0\.0\.0" .
E ainda assim ... o Apache se recusa a começar.
/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]
Caso alguém pergunte, eu não estou vinculado a esse endereço:
/etc/apache2$ sudo netstat -nap | grep :80
tcp 0 0 192.168.0.83:80 0.0.0.0:* LISTEN 2822/node
O log de erros em /var/log/apache2/error.log
diz apenas:
[Wed Aug 08 03:30:18 2012] [notice] caught SIGTERM, shutting down
Eu perdi um lugar na configuração do Apache? Existe algo que não estou lembrando de procurar? Por que isso não é tão simples como eu me lembrava?
O Apache se conecta a tudo por padrão, mesmo se você especificar determinados IP's para executar o NameVirtualHost.
Adicione isto em seu ports.conf:
Listen 192.168.0.82:80
Referência: link
Procure no arquivo /etc/apache2/ports.conf
.
Você encontrará uma diretiva como:
Listen 80
O comentário nas caixas do CentOS descreve esta opção:
#
# 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 o que você deseja, altere a linha Listen 80
para Listen 192.168.0.82:80
.
Você não pode iniciar o Apache agora porque está tentando ligar-se à porta 80 em todas as interfaces (a designação 0.0.0.0) e você tem node
ouvindo em 192.168.0.83:80.
O IP nos blocos do host virtual significa que esse host virtual específico responderá às solicitações recebidas nesse endereço IP. Ele não especifica como o Apache se ligará às interfaces que ele vê.
Diretiva de escuta é o que você está procurando:
Listen 192.168.0.82:80
Mais informações na documentação .
Use o seguinte de acordo com os documentos do Apache :
Listen 192.168.0.82:80
Em algumas circunstâncias (não todas), pode-se ir um pouco mais longe e fazer isso:
Listen some_name_in_my_localhost:80
Dessa forma, você torna suas configurações do apache portáveis em situações em que você tem um farm de servidores Apache. Existem prós e contras para isso (assim como com todo o resto).
Tags apache-2.2 ubuntu