Eu tenho um servidor com vários endereços IP e só quero o Apache ouvindo em um deles. Não parece algo difícil de fazer, e já fiz isso antes, mas há alguns problemas desta vez. Primeiro, aqui é onde estou agora, para meu entendimento:
Em todo lugar que o Apache está ouvindo a porta 80, está ouvindo apenas no 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 no 0.0.0.0.
/etc/apache2$ grep -R "0\.0\.0\.0" .
E ainda ... 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
apenas diz:
[Wed Aug 08 03:30:18 2012] [notice] caught SIGTERM, shutting down
Perdi um lugar na configuração do Apache? Existe algo que não me lembro de procurar? Por que isso não é tão simples quanto eu lembrava?
apache-2.2
ubuntu
Dan
fonte
fonte
Listen 192.168.0.82:80
linha crítica , que é o que eu precisava. Selecionei a resposta do cjc porque ela se aprofundou um pouco mais no motivo pelo qual essa linha era necessária. Eu pensei que mencionar os comentários usados na versão do Apache que vem com o CentOS foi uma boa adição. Mas como todo mundo parece concordar que a resposta deve ser pauska, eu fui adiante e dei a ele. Afinal, percebo olhando as revisões que o comentário de pauska influenciou significativamente a resposta do cjc em sua forma atual.Respostas:
O Apache liga-se a tudo por padrão, mesmo se você especificar determinados IPs para executar o NameVirtualHost.
Adicione isso no seu ports.conf:
Referência: http://httpd.apache.org/docs/2.2/bind.html
fonte
Olhe no
/etc/apache2/ports.conf
arquivo.Você encontrará uma diretiva como:
O comentário nas caixas do CentOS descreve esta opção:
Para o que você deseja, altere a
Listen 80
linha paraListen 192.168.0.82:80
.Você não pode iniciar o Apache agora porque está tentando se conectar à porta 80 em todas as interfaces (a designação 0.0.0.0) e está
node
ouvindo 192.168.0.83:80.O IP nos blocos do host virtual significa que esse host virtual específico responderá às solicitações que chegam nesse endereço IP. Ele não especifica como o Apache se ligará às interfaces que vê.
fonte
grep
ele estava fazendo era contra: 80, de modo que perderia as coisas de qualquer maneira, como o padrão éListen 80
.A diretiva Listen é o que você está procurando:
Mais informações na documentação .
fonte
Use o seguinte conforme os documentos do Apache :
Em algumas circunstâncias (não todas), pode-se ir um pouco mais longe e fazer o seguinte:
Dessa forma, você torna suas configurações do apache portáteis em situações em que você tem um farm de servidores Apache. Existem prós e contras nisso (como em todo o resto).
fonte