Akses server AWS EC2 saya, index.html dari browser eksternal

Saya telah menyiapkan server AWS EC2 minggu ini, dan saya hampir mencapai apa yang ingin saya lakukan. Namun membuka diri sebagai server web terbukti menjadi batu sandungan.

PENYIAPAN SAYA

Saya memiliki instans AWS EC2 yang menjalankan Red Hat EL7.

Saya memiliki server Apache yang berjalan di instance saya:

[ec2-user@ip-172-xx-xx-xx ~]$ ps -ef | grep -i httpd
root     18162     1  0 18:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   18163 18162  0 18:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   18164 18162  0 18:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   18165 18162  0 18:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   18166 18162  0 18:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   18167 18162  0 18:02 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
ec2-user 21345 20507  0 19:03 pts/1    00:00:00 grep --color=auto -i httpd

Tampaknya mendengarkan pada port 80:

[root@ip-172-xx-xx-xx ~]# netstat -lntp | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      18162/httpd   

Saya menambahkan aturan masuk ke grup keamanan "launch-wizard-1" (yang ditampilkan sebagai grup keamanan misalnya) untuk port 80 (HTTP) dan 443 (HTTPS) dengan sumber "0.0.0.0/0" dan " ::/0"

Dan terakhir, untuk menguji pengaturan saya, saya membuat file index.html di root dokumen saya (/var/www/html):

<html>
<h1>TEST!</h1>
</html>

MASALAH

Dari browser chrome di komputer saya, ketika saya mencoba menekan:

http://ec2-18-xxx-xxx-xx.us-east-2.compute.amazonaws.com/index.html

Saya hanya mendapatkan:

This page isn’t working
ec2-18-xxx-xxx-xx.us-east-2.compute.amazonaws.com didn’t send any data.
ERR_EMPTY_RESPONSE

(Saya mendapatkan hal yang sama ketika saya menemukan salah satu nama domain yang telah saya siapkan di sana, dan itulah yang sebenarnya coba lakukan tentu saja!)

Saya sudah mencoba menghubungkan dari Chrome di 2 komputer berbeda, dan dari Safari di ponsel saya ("Safari tidak dapat membuka halaman karena tidak dapat terhubung ke server")

PEMERIKSAAN YANG TELAH SAYA LAKUKAN

Saya tidak yakin saya memiliki firewall server yang mencegah hal ini:

[root@ip-xx-xx-xx-xx conf]# /sbin/iptables -L -v -n
Chain INPUT (policy ACCEPT 3575 packets, 275K bytes)
pkts bytes target     prot opt in     out     source               destination         


Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         


Chain OUTPUT (policy ACCEPT 2215 packets, 350K bytes)
 pkts bytes target     prot opt in     out     source               destination   

Menguji dengan telnet dari sesi terminal di mac saya, port 80 tampaknya terbuka. Pertama menggunakan IP Publik IPv2:

telnet 18.xxx.xxx.xx 80

Trying 18.xxx.xxx.xx...
Connected to ec2-18-xxx-xxx-xx.us-east-2.compute.amazonaws.com.
Escape character is '^]'.
Connection closed by foreign host.

dan menggunakan DNS Publik (IPv4):

telnet ec2-18-xxx-xxx-xx.us-east-2.compute.amazonaws.com 80

Trying 18.xxx.xxx.xx...
Connected to ec2-18-xxx-xxx-xx.us-east-2.compute.amazonaws.com.
Escape character is '^]'.
Connection closed by foreign host.

Dan sekali lagi, hal yang sama berlaku untuk nama domain saya - telnet ke port 80 menunjukkan "Tersambung".

- Apakah fakta bahwa "host asing" segera menutup koneksi itu penting? Haruskah tetap terbuka jika semuanya berjalan sebagaimana mestinya?

Menjalankan curl di host dengan benar mengembalikan file index.html sederhana saya:

[ec2-user@ip-172-xx-xx-xx ~]$ curl localhost
<html>
<h1>TEST!</h1>
</html>

Namun, menjalankan curl di komputer lokal saya - ke server - mengembalikan:

curl -v http://ec2-18-xxx-xxx-xx.us-east-2.compute.amazonaws.com:80
* Rebuilt URL to: http://ec2-18-xxx-xxx-xx.us-east-2.compute.amazonaws.com:80/
*   Trying 18.xxx.xxx.xx...
* Connected to ec2-18-xxx-xxx-xx.us-east-2.compute.amazonaws.com (18.xxx.xxx.xx) port 80 (#0)
> GET / HTTP/1.1
> Host: ec2-18-xxx-xxx-xx.us-east-2.compute.amazonaws.com
> User-Agent: curl/7.43.0
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host ec2-18-xxx-xxx-xx.us-east-2.compute.amazonaws.com left intact
curl: (52) Empty reply from server

Saya juga menguji server web "secara internal" dengan menjalankan google chrome (tanpa kepala) di server untuk membuat tangkapan layar, diunduh ke komputer lokal saya dan muncul TEST! (yaitu berfungsi):

google-chrome-stable --headless --disable-gpu --screenshot     http://localhost

Satu hal lagi yang perlu ditambahkan - ketika saya mencoba memukul server web dari mesin lokal saya, tidak ada yang muncul di log server web (error_log atau access_log) di server.

Jadi, pendapat saya adalah server web sudah aktif dan berjalan, berfungsi secara lokal, tetapi tidak berfungsi dengan benar untuk apa pun yang datang dari "luar". Tapi aku bingung sekarang.


person user3253319    schedule 20.12.2018    source sumber
comment
Apa yang terjadi jika Anda mencoba curl localhost dari server itu sendiri? Dengan begitu, ia menguji server web tanpa terpengaruh oleh konfigurasi jaringan apa pun.   -  person John Rotenstein    schedule 21.12.2018
comment
Maaf - seharusnya saya mengatakan bahwa saya telah melakukan itu, dan itu berfungsi dengan baik; mengembalikan HTML dari index.html sederhana saya   -  person user3253319    schedule 21.12.2018


Jawaban (2)


Doh! Saya me-reboot instance dan.. semuanya berfungsi sekarang!

22 tahun bekerja dengan komputer dan saya memerlukan waktu 22 jam untuk melakukan reboot. Bodoh!

person user3253319    schedule 21.12.2018

  1. Hubungkan ke EC2 instance Anda menggunakan ssh di terminal
  2. Instal python jika belum diinstal
  3. Mulai server python menggunakan nohup untuk terus menggunakan server

    nohup python -m http.server &

  4. Ini biasanya membuka port 8000, goto EC2 Security Group Jadikan source anywhere atau sesuai kebutuhan.

masukkan deskripsi gambar di sini

  1. Arahkan ke folder yang memiliki index.html, path file akan terlihat seperti di bawah ini

    http://ec2---.compute-1. amazonaws.com:8000/folder/situs web/

Anda akan dapat mengembangkan dan melihat perubahan Anda sesuai kebutuhan.

person Harry_pb    schedule 10.02.2020