Este tópico explica como solucionar problemas de sites inacessíveis hospedados em uma instância ECS.
Sintomas
Ao tentar acessar um site em execução em uma instância ECS, você pode encontrar os seguintes problemas:
Você recebe mensagens como "No ICP filing or not connected" ou "The website content does not match the ICP filing information".
O navegador retorna códigos de status HTTP, como 403, 404, 502 ou 503.
Não é possível acessar um site recém-criado.
Um site que funcionava corretamente torna-se inacessível repentinamente.
Não é possível acessar um site em uma instância ECS por meio de uma instância do Server Load Balancer (SLB).
Não é possível acessar um site acelerado pelo Alibaba Cloud CDN.
Não é possível acessar um site protegido pelo Web Application Firewall (WAF).
Causas
Diversos fatores podem tornar um site em uma instância ECS inacessível. Esta seção lista as causas mais comuns. A causa real depende dos resultados da sua solução de problemas.
A porta TCP 80 está indisponível.
O serviço web está indisponível.
O site não possui registro ICP.
Há problemas com recursos do site ou serviços de backend.
O site não foi construído conforme os procedimentos padrão.
Há um problema no servidor de origem.
Os problemas de acesso a sites podem ter diversas origens. Para obter mais informações, consulte Solução de problemas e diretrizes para exceções de acesso a instâncias ECS.
Solução de problemas
Escolha um dos métodos abaixo para solucionar o problema.
Solucionar problemas por fluxograma
Siga as etapas do fluxograma para identificar e resolver o problema.

Soluções por sintoma
Encontre a solução correspondente a cada sintoma listado abaixo.
-
Mensagem: "No ICP filing or not connected" ou "The website content does not match the ICP filing information".
O acesso ao site só é permitido após a obtenção de um registro ICP para o endereço IP ou nome de domínio do site. Para obter mais informações, consulte Registro ICP geral.
-
O navegador retorna um código de status HTTP, como 403, 404, 502 ou 503.
Quando o navegador retorna um código de status, isso geralmente indica que a conexão de rede entre o cliente e o servidor está estável, mas aponta para um problema nos recursos do site ou nos serviços de backend.
-
Não é possível acessar um site recém-criado.
Siga o procedimento padrão para construir seu site. Para obter mais detalhes sobre o processo de criação, consulte Início rápido para criação de sites.
-
Um site que funcionava corretamente torna-se inacessível repentinamente.
Verifique se o serviço web e o banco de dados de backend estão em execução. Caso algum serviço esteja parado, analise os logs em busca de mensagens de erro e utilize-as para corrigir o problema.
NotaOs arquivos de log do serviço web geralmente são nomeados access.log ou error.log. Para mais detalhes, visite o site oficial do seu serviço web.
Problemas em serviços de backend, como PHP, Java, Tomcat ou o banco de dados, também podem tornar o site inacessível. Nesse caso, entre em contato com o administrador do site para obter assistência.
-
Não é possível acessar um site em uma instância ECS por meio de uma instância do Server Load Balancer (SLB).
Se você utiliza uma instância do Server Load Balancer (SLB) com sua instância ECS, o problema pode estar relacionado a configurações incorretas de listener na instância SLB. Para obter mais informações, consulte Não é possível acessar um site em uma instância ECS usando uma instância SLB.
-
Não é possível acessar um site após a aceleração pelo Alibaba Cloud CDN.
Primeiramente, determine se o problema está no servidor de origem. Para obter mais informações, consulte Solucionar falhas de acesso ao site após a ativação do Alibaba Cloud CDN.
-
Não é possível acessar um site protegido pelo Web Application Firewall (WAF).
Inicialmente, verifique se o problema reside no servidor de origem e, em seguida, confirme se o WAF bloqueou alguma solicitação indevidamente. Para obter mais informações, consulte Não é possível acessar um site protegido pelo WAF.
Soluções
Esta seção descreve soluções para problemas causados pela indisponibilidade da porta TCP 80 ou do serviço web.
Linux: Porta 80 e serviço web
As etapas a seguir utilizam uma instância CentOS 7 como exemplo. Os procedimentos podem variar dependendo do seu sistema operacional.
Porta TCP 80 indisponível
-
Conecte-se à instância Linux.
Para obter mais informações, consulte Métodos de conexão.
-
Execute o comando abaixo para verificar se há algum serviço escutando na porta TCP 80:
netstat -an | grep 80Se o comando retornar uma das saídas a seguir, significa que um serviço web está em execução e escutando na porta TCP 80. Caso receba uma saída diferente ou um erro, consulte O serviço web está indisponível para prosseguir com os próximos passos.
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN # Listening on all network interfacestcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN # Listening on the local hostNotaEscutar apenas em 127.0.0.1 impede o acesso externo ao serviço web. É necessário alterar a configuração para escutar em todas as interfaces de rede.
-
Verifique se o tráfego está permitido na porta TCP 80 e se a conexão é estável.
Confira se o grupo de segurança da instância permite tráfego na porta TCP 80. Caso contrário, adicione uma regra de grupo de segurança. Para obter mais informações, consulte Adicionar uma regra de grupo de segurança.
Verifique se o firewall do sistema operacional da instância está ativado. Se estiver, recomendamos desativá-lo e utilizar grupos de segurança em seu lugar. Para obter mais informações, consulte Gerenciar o firewall do sistema em uma instância Linux.
Utilize os comandos telnet e traceroute para testar a conectividade na porta TCP 80. Para obter mais informações, consulte Solucionar problemas de conectividade de porta quando o servidor responde ao ping.
-
Verifique se a instância ECS possui largura de banda suficiente.
Para obter mais informações, consulte Consultar e analisar a carga do sistema de uma instância Linux.
Se a largura de banda for insuficiente, aumente a largura de banda da instância. Para obter mais informações, consulte Modificar configurações de largura de banda.
O serviço web está indisponível
-
Conecte-se à instância Linux.
Para obter mais informações, consulte Métodos de conexão.
-
Verifique os logs do serviço web.
-
Execute o comando abaixo para visualizar os logs de erro do Apache.
-
CentOS ou Alinux:
less /var/log/httpd/error_log -
Ubuntu:
less /var/log/apache2/error.log
-
-
Execute o comando abaixo para visualizar os logs de erro do Nginx.
less /var/log/nginx/error_log
-
-
Execute o comando
toppara verificar o status de execução da instância.Procure por processos anormais. O bloco de código a seguir mostra um exemplo de saída do comando.
top - 16:03:47 up 21:22, 2 users, load average: 0.01, 0.02, 0.05 Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.1 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 7732780 total, 6633068 free, 208044 used, 891668 buff/cache KiB Swap: 0 total, 0 free, 0 used. 7276512 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1685 root 10 -10 140444 18232 11472 S 1.0 0.2 18:40.04 AliYunDun 1371 root 10 -10 42320 4492 2988 S 0.3 0.1 0:46.65 AliYunDunUpdate 1 root 20 0 191048 4084 2612 S 0.0 0.1 0:01.74 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 5 root 20 0 0 0 0 S 0.0 0.0 0:00.35 kworker/u8:0 6 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:10.57 rcu_schedOs valores de
load averagede0.01,0.02e0.05representam a carga média do sistema nos últimos 1, 5 e 15 minutos, respectivamente. Como regra geral, se a carga média dividida pelo número de CPUs lógicas for maior que 5, o sistema pode estar sobrecarregado. Esse limiar pode variar conforme a capacidade da CPU e a carga de trabalho do servidor. Se o sistema estiver sobrecarregado, identifique o ID do processo (PID) com alto valor de%CPU. Em seguida, localize o nome do processo na colunaCOMMANDe tome as medidas adequadas às necessidades do seu sistema. -
Visualize as informações de monitoramento da instância no console.
Para obter mais informações, consulte Visualizar informações de monitoramento da instância.
Verifique se a instância possui CPU e memória suficientes. Caso contrário, consulte Solucionar alta utilização de CPU em instâncias ECS Linux.
Verifique se a instância possui largura de banda suficiente. Se não possuir, aumente a largura de banda da instância. Para obter mais informações, consulte Modificar configurações de largura de banda.
-
Execute o comando abaixo para verificar se há excesso de conexões TCP na porta 80 da instância:
netstat -anp | grep ':80 ' | grep tcpAbaixo está um exemplo de resposta:
xxx@linux:~# netstat -anp |grep 80 |grep tcp tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2551/nginx: master tcp 0 0 xxx.xxx.xxx.174:36646 xxx.xxx.xxx.70:80 TIME_WAIT - tcp 0 0 xxx.xxx.xxx.174:51426 xxx.xxx.xxx.70:80 TIME_WAIT - tcp 0 0 xxx.xxx.xxx.174:34034 xxx.xxx.xxx.70:80 TIME_WAIT - tcp 0 0 xxx.xxx.xxx.174:42812 xxx.xxx.xxx.xxx:80 ESTABLISHED 1633/AliYunDun tcp6 0 0 :::80 :::* LISTEN 2551/nginx: master xxx@linux:~# netstat -anp |grep 80 |grep tcp |wc -l 6 -
Execute o comando abaixo para contar todas as conexões TCP:
netstat -anp |grep tcp |wc -l -
Compare o número total de conexões TCP com o valor do parâmetro
net.ipv4.tcp_max_tw_bucketsno arquivo/etc/sysctl.conf. Se o total de conexões TCP exceder esse valor, execute as etapas a seguir:-
Execute o comando
vi /etc/sysctl.confpara abrir o arquivo/etc/sysctl.confe verifique o valor do parâmetronet.ipv4.tcp_max_tw_buckets.vm.swappiness = 0 kernel.sysrq = 1 net.ipv4.neigh.default.gc_stale_time = 120 # see details in https://www.alibabacloud.com/help/knowledge_detail/39428.html net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_announce = 2 # see details in https://www.alibabacloud.com/help/knowledge_detail/41334.html net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_slow_start_after_idle = 0Se confirmar que o número de conexões TCP está alto e tende a ultrapassar o limite, aumente o valor do parâmetro
net.ipv4.tcp_max_tw_bucketsconforme suas necessidades. Execute o comando
sysctl -ppara aplicar a nova configuração.
-
Windows: Porta 80 e serviço web
As etapas a seguir utilizam uma instância com Windows Server 2012 R2 como exemplo. Os procedimentos reais podem variar conforme o seu sistema operacional.
Porta TCP 80 indisponível
-
Conecte-se à instância Windows.
Para obter mais informações, consulte Métodos de conexão.
-
Abra o Prompt de Comando.
Clique no ícone Iniciar
no canto inferior esquerdo da área de trabalho e, em seguida, clique no ícone de Pesquisa
.Na caixa de pesquisa, insira
cmd.-
Clique em Command Prompt.
A janela do Prompt de Comando será aberta.
Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\Users\Administrator>
-
Execute o comando abaixo para verificar se há algum serviço escutando na porta TCP 80:
netstat -ano | findstr :80Se o comando retornar uma das saídas a seguir, significa que um serviço web está em execução e escutando na porta TCP 80. Caso receba uma saída diferente ou um erro, consulte O serviço web está indisponível para prosseguir com os próximos passos.
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1172 # Listening on all network interfaces TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 1172 # Listening on the local hostNotaSe um serviço escutar apenas no host local (127.0.0.1), clientes externos não conseguirão acessar o serviço web. Execute o comando
netsh http delete iplisten ipaddress=127.0.0.1:80para reconfigurar o serviço e escutar em todas as interfaces de rede. -
Verifique se o tráfego está permitido na porta TCP 80 e se a conexão é estável.
Confira se o grupo de segurança da instância permite tráfego na porta 80. Caso contrário, adicione uma regra de grupo de segurança. Para obter mais informações, consulte Adicionar uma regra de grupo de segurança.
Verifique se o firewall do sistema operacional da instância está ativado. Se estiver, recomendamos desativá-lo e utilizar grupos de segurança em seu lugar. Para obter mais informações, consulte Configurar políticas de firewall para uma instância Windows.
Utilize os comandos telnet e tracert para testar a conectividade na porta 80. Para obter mais informações, consulte Solucionar problemas de conectividade de porta quando o servidor responde ao ping.
-
Verifique se a instância ECS possui largura de banda suficiente.
Para obter mais informações, consulte Solucionar uso alto ou total de largura de banda e CPU em instâncias Windows.
Se a largura de banda for insuficiente, aumente a largura de banda da instância. Para obter mais informações, consulte Modificar configurações de largura de banda.
O serviço web está indisponível
-
Conecte-se à instância Windows.
Para obter mais informações, consulte Métodos de conexão.
-
Verifique os logs do serviço web.
-
Método 1: Acesse a pasta de logs.
Para Windows Server 2008 R2 e versões posteriores, o caminho dos logs é
C:\inetpub\logs\LogFiles. -
Método 2: Utilize o Gerenciador do Internet Information Services (IIS).
Escolha
> Windows Administrative Tools> Internet Information Services (IIS) Manager.Na página inicial do seu site, clique duas vezes em Logging na seção IIS. Em seguida, no painel Actions, clique em Browse.
-
Na página Logging, modifique o caminho de armazenamento dos logs conforme necessário. Copie o caminho, cole-o no File Explorer e pressione
Enter.Você poderá então visualizar a pasta de logs no File Explorer.
-
-
Utilize o Gerenciador de Tarefas para verificar o status da instância e identificar processos anormais.
Clique com o botão direito na área de trabalho e selecione Task Manager.
-
Clique na aba Processes.
É possível visualizar o uso de CPU e memória dos processos no Gerenciador de Tarefas para identificar comportamentos anormais.
-
Visualize as informações de monitoramento da instância no console.
Para obter mais informações, consulte Visualizar informações de monitoramento da instância.
Verifique se a instância possui CPU e memória suficientes. Caso contrário, consulte Solucionar uso alto ou total de largura de banda e CPU em instâncias Windows.
Verifique se a instância possui largura de banda suficiente. Se não possuir, aumente a largura de banda da instância. Para obter mais informações, consulte Modificar configurações de largura de banda.
-
Verifique se há excesso de conexões TCP na porta 80 da instância.
-
Abra o Prompt de Comando.
Clique no ícone Iniciar
no canto inferior esquerdo da área de trabalho e, em seguida, clique no ícone de Pesquisa
.Na caixa de pesquisa, insira
cmd.-
Clique em Command Prompt.
A janela do Prompt de Comando será aberta.
Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\Users\Administrator>
-
-
Execute os comandos abaixo sequencialmente para contar as conexões TCP em diferentes estados:
netstat -n |find /i "time_wait" /c netstat -n |find /i "close_wait" /c netstat -n |find /i "established" /cPor padrão, o Windows permite 16.384 portas dinâmicas, variando de 49152 a 65535. Se o número de conexões no estado
CLOSE_WAITse aproximar desse limite, muitas conexões não estão sendo liberadas adequadamente. Nesse caso, modifique o registro para reduzir a duração doTcpTimedWaitDelayconforme descrito na próxima etapa.C:\Users\Administrator>netstat -n |find /i "time_wait" /c 10 C:\Users\Administrator>netstat -n |find /i "close_wait" /c 0 C:\Users\Administrator>netstat -n |find /i "established" /c 7 C:\Users\Administrator> -
Abra o Editor do Registro.
Clique no ícone Iniciar
no canto inferior esquerdo da área de trabalho e, em seguida, clique no ícone de Pesquisa
.Na caixa de pesquisa, insira
regedit.-
Clique em regedit.
A janela do Editor do Registro será aberta.
-
No Editor do Registro, acesse
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters. Defina o valor da chaveTcpTimedWaitDelaycomo o valor decimal30.Se a entrada
TcpTimedWaitDelaynão existir, crie a entrada de registro e depois modifique seus dados de valor. Por exemplo, se a entradaTcpTimedWaitDelaynão existir, execute as etapas a seguir:No caminho
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters, clique com o botão direito em uma área vazia e selecione New > DWORD (32-bit) Value.Insira
TcpTimedWaitDelaye pressioneEnter.Clique com o botão direito na chave
TcpTimedWaitDelaye clique em Modify.Na caixa de diálogo exibida, selecione Decimal e defina os Value data como
30.Clique em OK.