Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Por que não consigo me conectar a um site hospedado na minha instância do EC2?
Não consigo me conectar a um site público hospedado na minha instância do Amazon Elastic Compute Cloud (Amazon EC2).
Breve descrição
Para resolver um erro de site inacessível, verifique se as configurações na sua instância do EC2 estão corretas. Por exemplo, se sua instância não tiver as configurações de DNS corretas, não será possível se conectar a nenhum site hospedado nessa instância.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Use o SSH ou o SSM Session Manager para se conectar à instância. Se nenhum dos métodos estiver disponível, use o Console de Série do EC2 para conectar-se às instâncias criadas no Sistema Nitro.
Verifique se a instância está em execução e passando pelas duas verificações de status
Certifique-se de que a instância esteja em execução no console do Amazon EC2. Se você tiver um problema de verificação de status, siga as etapas em Por que minha instância EC2 Linux está inacessível e está falhando nas verificações de status? Verifique se a instância inicializa corretamente. Para obter mais informações, consulte Saída do console da instância ou Capturar uma imagem de uma instância inacessível.
Verifique se há erros de inicialização nos logs do sistema da instância.
Use os métodos a seguir para verificar se há erros de inicialização:
- Se você receber um erro de pânico de kernel, consulte Como faço para corrigir um erro “Kernel panic - not syncing” com instâncias do EC2?
- Para outros erros do sistema operacional, consulte Como soluciono problemas de uma instância Linux do EC2 que falhou na verificação de status da instância devido a problemas no sistema operacional?
Verifique o grupo de segurança da instância e a configuração da ACL de rede
Use os métodos a seguir para verificar a configuração da sua instância:
- Certifique-se de que o grupo de segurança e a ACL de rede associados à instância permitam tráfego nas portas 80 e 443.
- Certifique-se de que a tabela de rotas na sub-rede da instância tenha uma rota padrão para um gateway da Internet.
Verifique se a instância tem a configuração de DNS correta
Use os métodos a seguir para verificar a configuração da sua instância:
- Se o seu site usa o serviço DNS Route 53, verifique se você configurou os registros DNS corretamente.
- Certifique-se de que a instância tenha um endereço IP elástico atribuído a ela. Se você parar e iniciar sua instância, o endereço IP elástico ainda estará associado à instância.
- Certifique-se de mapear o endereço IP público ou o endereço IP elástico para um registro A.
Verifique se o servidor Web está em execução e se não há firewalls no nível do sistema operacional bloqueando o acesso às portas
As portas de rede são os terminais de comunicação para os quais vários serviços enviam solicitações. Essas solicitações incluem solicitações de conexão de sites dos usuários. Os servidores Web escutam tráfego HTTP na porta 80 e usam a porta 443 para tráfego criptografado com TLS/SSL. Se o servidor Web não estiver em execução ou os firewalls bloquearem essas portas, os usuários não poderão se conectar ao seu site. Conclua as etapas a seguir:
-
Para verificar se o site está sendo executado localmente, execute este comando no site de hospedagem de instâncias do EC2:
curl https://localhost
-or-
curl http://localhost:443
Observação: se você encontrar problemas ao usar o curl, verifique se há problemas com o servidor de hospedagem na web da instância. Além disso, verifique a configuração da aplicação na instância.
Conecte-se à sua instância usando SSH, SSM Session Manager ou Console de Série do EC2. -
Verifique o status do serviço do servidor web.
Para sistemas RHEL, CentOS, Fedora e Amazon Linux, execute o comando systemctl status httpd para verificar o status do servidor web. O comando retorna informações de que o servidor Web está inativo:$ sudo systemctl status httpd.service The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: inactive (dead)
Para sistemas Debian ou Ubuntu, execute o comando systemctl status apache2 para verificar o status do servidor Web. O servidor Web deve estar escutando na porta 80 ou 443. O comando retorna informações de que o servidor Web está inativo:
$ sudo systemctl status apache2.service The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: disabled) Active: inactive (dead)
-
Para iniciar o servidor web e ativar o serviço para iniciar na inicialização, execute os seguintes comandos:
Para sistemas RHEL, CentOS, Fedora e Amazon Linux:$ sudo systemctl start httpd; sudo systemctl enable httpd
Para sistemas Debian ou Ubuntu:
$ sudo systemctl start apache2; sudo systemctl enable apache2
-
Verifique se o serviço do servidor web está em execução e ativado:
Para sistemas RHEL, CentOS, Fedora e Amazon Linux, execute o seguinte comando:$ sudo systemctl status httpd.service The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)Active: active (running)
Para sistemas Debian ou Ubuntu, execute o seguinte comando:
$ sudo systemctl status apache2.service The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)Active: active (running)
Observação: para sistemas Linux que executam SystemV, execute esse comando para verificar o status do servidor Web.
Para sistemas Debian ou Ubuntu, você deve substituir httpd por apache2:$ sudo service httpd statushttpd is stopped
Para iniciar um servidor Web parado no SystemV, execute o comando a seguir:
$ sudo service httpd start Starting httpd: [ OK ]
-
Para confirmar se o servidor Web está escutando na porta 80 ou 443 as solicitações de conexão de entrada dos usuários, execute o seguinte comando:
$ sudo netstat -tulpn | grep -iP 'httpd|apache2' tcp 0 0 :::80 :::* LISTEN 2961/httpd
Observação: se houver várias interfaces em execução, confirme se o servidor Web está escutando todos os endereços IP e execute o comando a seguir:
cat /etc/httpd/conf/httpd.conf | grep Listen
Veja a seguir exemplos de saídas:
Listen *:80
-or-
Listen *:443
-
Verifique o status dos firewalls no nível do sistema operacional. Se você encontrar um firewall ativo, certifique-se de que ele permita solicitações nas portas 80 e 443.
(Opcional) Para verificar se as regras do iptables bloqueiam solicitações de entrada nas portas 80 e 443, execute o comando a seguir:$ sudo iptables -vnL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 35 10863 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
A saída do comando IPTables anterior mostra que somente ICMP, localhost e porta 22/TCP (SSH) são permitidos. Isso significa que as conexões de entrada às portas 80/TCP e 443/TCP estão bloqueadas ou rejeitadas.
Para permitir que as portas 80 e 443 aceitem solicitações de conexão HTTP e HTTPS recebidas, execute o seguinte comando:$ iptables -I INPUT -p tcp --match multiport --dports 80,443 -j ACCEPT
A saída a seguir mostra que a regra de multiportas foi adicionada às portas de serviço do servidor web, 80/TCP e 443/TCP.
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443 486 104K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Para Amazon Linux 2023, Amazon Linux 2 e RHEL 7 e versões posteriores
Para confirmar se o serviço firewalld está em execução, execute o seguinte comando:
$ sudo firewall-cmd --staterunning
Se o serviço firewalld estiver em execução, execute os seguintes comandos para permitir conexões nas portas 80/TCP e 443/TCP. O último comando no exemplo recarrega o serviço para que as regras recém-adicionadas entrem em vigor:
$ sudo firewall-cmd --add-service=http --permanent success $ sudo firewall-cmd --add-service=https --permanent success $ sudo firewall-cmd --reload success
Para servidores Debian e Ubuntu
Conclua as etapas a seguir:
-
Para verificar se há um Firewall descomplicado (UFW), execute o seguinte comando:
$ sudo ufw status verbose Status: active
-
Se o UFW estiver em execução, use o seguinte comando para permitir solicitações de conexão de entrada nas portas 80/TCP e 443/:
$ sudo ufw allow in 80/tcp Rule added Rule added (v6) $ sudo ufw allow 443/tcp Rule added Rule added (v6)
Verifique se há problemas nos logs de erros de acesso ao seu servidor Web. Os logs do servidor Web estão localizados em /var/log. A seguir estão as localizações padrão dos logs do servidor web:
- Amazon Linux e RHEL: /var/log/httpd
- Debian e Ubuntu: /var/log/apache2
Observação: a localização do log do servidor web depende da configuração do seu servidor.
Informações relacionadas
Como solucionar problemas de conexões lentas com um site hospedado na minha instância do EC2?
Vídeos relacionados


Conteúdo relevante
- feita há um mêslg...
- feita há 5 meseslg...
- feita há 3 meseslg...
- feita há um mêslg...