Você esqueceu de abrir a porta no firewall.
Por exemplo.
firewall-cmd --add-service=http
Aqui está minha configuração. Eu tenho um vm rodando com o Oracle Linux 7 instalado. Eu comecei o apache com service httpd start
e ele começou sem problemas. Eu criei um arquivo index.html
em /var/www/html
e /var/www
. Consigo alcançar a VM a partir da minha máquina host usando ping
ou ssh
, mas quando eu abro um navegador da web e navego para o endereço IP, o servidor não responde.
Eu verifiquei netstat -plent
e ele mostra que a porta 80 está ouvindo:
# netstat -plent
tcp6 0 0 :::80 :::* LISTEN 0 121584 36432/httpd
Eu procurei em vários answers que sugerem que o iptables pode ser o problema, mas nenhuma dessas soluções ajudou. O que mais pode estar causando o problema?
Você está ouvindo apenas no IPv6, passando por essa saída do netstat.
Você precisa acessar o site usando apenas IPv6 ou criar outra diretiva ouvinte no apache para ouvir em 0.0.0.0:80. No httpd.conf:
Listen 0.0.0.0:80
Você pode, claro, ouvir apenas o endereço IP em que deseja atender o tráfego.
No entanto, este conselho não está certo se você tiver suporte para sockets de pilha dupla no Linux. Talvez seja necessário apenas verificar se a escuta de pilha dupla está ativada. Usando procfs, verifique este arquivo:
/proc/sys/net/ipv6/bindv6only
Se não for 0, você precisa alterá-lo em sua configuração para 0 ou escutar IPv4 explicitamente.
Além disso, verifique suas regras de firewall; Se você está rejeitando o tráfego no ipv4 ou ipv6, isso explicaria isso. Confira aqui:
iptables -t filter -nvL INPUT
ip6tables -t filter -nvL INPUT
Se a política padrão não for ACCEPT e você não tiver uma regra que permita o tráfego HTTP, ou se você tiver regras bloqueando, isso explicaria.
Tags apache-2.4 centos oracle-linux