Você só precisa vincular 1 endereço IP ao apache.
Listen [myIP1]:80
Isso é tudo que você precisa.
Eu tenho três IPs. Eu estou tentando ligar o Apache a dois dos meus endereços IP para deixar o terceiro livre para outros usos (Node.js). Atualmente, o Apache está escutando em todos os endereços IP. httpd.conf:
Listen 80
Eu só quero que o Apache se vincule a dois dos meus endereços. Tentei seguir o este doc e substituí o anterior Listen 80
pelo seguinte:
Listen XX.XX.XX.XX:80
Listen XX.XX.XX.XX:80
No entanto, quando tento reiniciar o Apache, recebo o seguinte erro:
Stopping httpd: [FAILED]
(99)Cannot assign requested address: make_sock: could not bind to address XX.XX.XX.XX:80
no listening sockets available, shutting down
Não entendo como a porta 80 está livre para ser usada em todos os endereços IP, mas quando especifico IPs individuais, ocorrem erros. Alguém tem alguma ideia?
Obrigado.
Geralmente, essa mensagem de erro é devido à digitação do endereço IP errado ou devido à porta 80 já estar em uso no IP especificado. Tente alterar temporariamente a porta para 81 (ou um número não utilizado semelhante) e veja se isso funciona. Se isso acontecer, significa que alguma outra coisa está escutando na porta 80 em um ou ambos os IPs. netstat
deve listar todos os serviços que atendem em todos os endereços.
Você vê os dois ips se você fizer um
ifconfig -a
O SSL bloquearia o Apache para escutar na mesma porta.
Teste semanage port -l |grep http_t
para obter as portas de escuta disponíveis, para que você possa escolher outra porta e colocar o host virtual para ouvir isso.
No ubuntu 12.04 você tinha que adicionar o IP lá (o httpd.conf está vazio) para
NameVirtualHost xx.xx.xx.xx: 80 (se você tiver mais de um domínio no site)
Ouça xx.xx.xx.xx: 80
Tags bind ip apache-2.2 port