Perché non riesco a connettermi a un sito web ospitato sulla mia istanza EC2?
Non riesco a connettermi a un sito web pubblico ospitato sulla mia istanza Amazon Elastic Compute Cloud (Amazon EC2).
Breve descrizione
Per risolvere i problemi relativi a siti web irraggiungibili, verifica di aver effettuato correttamente la configurazione del sito web sull'istanza EC2. Impostazioni errate del server web sull'istanza bloccano l'accesso a tutti i siti web ospitati.
Risoluzione
Verifica che l'istanza sia in esecuzione e superi entrambi i controlli di stato
Controlla la console Amazon EC2 per verificare che l'istanza sia in esecuzione. Per risolvere i problemi relativi al controllo di stato, consulta Perché la mia istanza Linux EC2 è irraggiungibile e non supera i controlli di stato?
Inoltre, utilizza l'output della console dell'istanza e uno screenshot dell'istanza per verificare se l'istanza si avvia correttamente.
Controlla il gruppo di sicurezza dell'istanza e la configurazione dell'ACL di rete
Verifica le seguenti configurazioni dell'istanza:
- Il gruppo di sicurezza associato e la lista di controllo degli accessi alla rete (ACL) consentono il traffico sulle porte 80 e 443.
- La tabella di routing nella sottorete dell'istanza ha una route predefinita verso un gateway Internet.
Verifica che il sito web abbia la configurazione DNS corretta
Verifica le seguenti configurazioni DNS per il sito web:
- Se il sito web utilizza il servizio DNS Amazon Route 53, hai configurato correttamente i record DNS.
- Hai assegnato un indirizzo IP elastico all'istanza.
Nota: l'indirizzo IP elastico rimane associato all'istanza anche quando arresti e avvii l'istanza. - Hai mappato l'indirizzo IP pubblico o l'indirizzo IP elastico su un record A.
Verifica che il server web sia in esecuzione e che nessun firewall del sistema operativo blocchi l'accesso alle porte
Per verificare la configurazione delle porte di rete e il server web, completa i seguenti passaggi:
-
Utilizza SSH o Gestione sessione, una funzionalità di AWS Systems Manager, per connetterti all'istanza. Se non riesci a utilizzare SSH o Gestione sessione per connetterti a istanze costruite sull'AWS Nitro XSystem, utilizza la Console seriale EC2.
-
Per verificare se il sito web è in esecuzione in locale, esegui questo comando dal sito web ospitato sull'istanza EC2:
curl https://localhost-oppure-
curl http://localhost:443Nota: se riscontri problemi quando usi curl, verifica la presenza di problemi con il server web dell'istanza e la configurazione dell'applicazione.
-
Per verificare lo stato del servizio del server web, esegui questo comando in base al sistema operativo in esecuzione.
Red Hat Enterprise Linux (RHEL), CentOS, Fedora e Amazon Linux:sudo systemctl status httpd.serviceEsempio di output:
The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: inactive (dead)Debian e Ubuntu:
sudo systemctl status apache2.serviceEsempio di output:
The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; disabled; vendor preset: disabled) Active: inactive (dead)Nell'output del comando, verifica se lo stato è inactive (inattivo).
Se i sistemi Linux eseguono System V, esegui questo comando per verificare lo stato del server web:sudo service httpd statusNota: se utilizzi Debian o Ubuntu, sostituisci httpd con apache2.
Esempio di output:httpd is stopped -
Per avviare il server web e impostare l'attivazione del servizio all'avvio, esegui questi comandi in base al sistema operativo:
RHEL, CentOS, Fedora e Amazon Linux:sudo systemctl start httpd; sudo systemctl enable httpdDebian o Ubuntu:
sudo systemctl start apache2; sudo systemctl enable apache2 -
Per verificare che il servizio del server web sia in esecuzione e attivato, esegui questi comandi in base al sistema operativo:
RHEL, CentOS, Fedora e Amazon Linux:sudo systemctl status httpd.serviceEsempio di output:
The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running)Debian o Ubuntu:
sudo systemctl status apache2.serviceEsempio di output:
The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running)Per avviare un servizio server web arrestato per sistemi che eseguono System V, esegui questo comando:
sudo service httpd startEsempio di output:
Starting httpd: [ OK ] -
Per verificare che il server web sia in ascolto delle richieste di connessione utente in entrata, esegui questo seguente:
sudo netstat -tulpn|grep -i :80 tcp6 0 0 :::80 :::* LISTEN 11993/httpdNota: esegui il comando precedente due volte. La seconda volta, sostituisci 80 con 443. I server web sono in ascolto sulla porta 80 per il traffico HTTP e sulla porta 443 per il traffico crittografato con TLS/SSL.
Se utilizzi più interfacce, esegui questo comando per verificare che il server web sia in ascolto su tutti gli indirizzi IP:cat /etc/httpd/conf/httpd.conf | grep ListenEsempi di output:
Listen *:80Listen *:443 -
Se utilizzi un firewall del sistema operativo, assicurati che consenta richieste sulle porte 80 e 443.
-
(Facoltativo) Per verificare che le regole di iptables consentano richieste in entrata sulle porte 80 e 443, esegui questo comando:
sudo iptables -vnLEsempio di output:
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-prohibitedNell'output di esempio precedente, le regole consentono solo Internet Control Message Protocol (ICMP), localhost e porta 22/TCP (SSH). Le regole bloccano le connessioni in entrata alla porta TCP 80 o 443.
-
Per configurare le regole di iptables in modo da consentire alle porte 80 e 443 di accettare richieste di connessione HTTP e HTTPS in entrata, esegui questo comando:
iptables -I INPUT -p tcp --match multiport --dports 80,443 -j ACCEPTEsempio di output:
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
Verifica le configurazioni per AL2023, AL2 e RHEL 7 e versioni successive
Per le istanze Amazon Linux 2023 (AL2023), Amazon Linux 2 (AL2) e RHEL, esegui questo comando per verificare se il servizio firewalld è in esecuzione:
sudo firewall-cmd --state
Esempio di output:
running
Se il servizio firewalld è in esecuzione, esegui questi comandi per consentire connessioni sulle porte 80/TCP e 443/TCP:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
Nota: se in precedenza hai aggiunto regole, il comando reload ricarica il servizio e rende effettive le regole.
Per ogni comando, verifica che l'output sia simile all'esempio seguente:
success
Controlla le configurazioni per i server Debian e Ubuntu
Completa i seguenti passaggi:
-
Per verificare la presenza di un firewall semplice (UFW), esegui questo comando:
sudo ufw status verboseEsempio di output:
Status: active -
Se utilizzi un UFW, utilizza il seguente comando per consentire richieste di connessione in entrata sulle porte TCP necessarie:
Porta TCP 80:sudo ufw allow in 80/tcpPorta TCP 443:
sudo ufw allow 443/tcp -
Per ogni comando, verifica che l'output sia simile all'esempio seguente:
Rule added Rule added (v6)
Per risolvere ulteriormente i problemi, controlla i log degli errori di accesso al server web in /var/log. Di seguito sono riportati i percorsi predefiniti dei log del server web:
- Per Amazon Linux e RHEL, utilizza /var/log/httpd.
- Per Debian e Ubuntu, utilizza /var/log/apache2.
Nota: il percorso del log del server web dipende dalla configurazione del server.
Informazioni correlate
Come posso risolvere i problemi di connessione lenta a un sito Web ospitato sulla mia istanza EC2?
- Argomenti
- Compute
- Lingua
- Italiano
Video correlati

