Доступ к моему серверу AWS EC2 index.html из внешнего браузера - PullRequest
0 голосов
/ 20 декабря 2018

На этой неделе я настраивал сервер AWS EC2, и я почти готов к тому, что хочу сделать.Но открытие в качестве веб-сервера оказывается камнем преткновения.

МОЯ НАСТРОЙКА

У меня есть экземпляр AWS EC2 под управлением Red Hat EL7.

У меня на сервере запущен сервер Apache:

[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

Кажется, он прослушивает порт 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   

Я добавил входящие правила в "launch-wizard-1 "группа безопасности (которая показана как группа безопасности для экземпляра) для порта 80 (HTTP) и 443 (HTTPS) с источниками" 0.0.0.0/0 "и" :: / 0 "

И, наконец, для тестирования моей установки я создал файл index.html в корне моего документа (/ var / www / html):

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

ПРОБЛЕМА

Из моего браузера Chrome на моем компьютере, когда я пытаюсь нажать:

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

Я просто получаю:

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

(я получаю то же самое, когда нажимаю на одно из моих доменных имен, которое я там настроил, чтоэто то, что я действительно пытаюсь сделать, конечно!)

Я пытался подключиться из Chrome на 2 разных компьютерах и из Safari на моем телефоне ("Safari не может открыть страницупотому что не удалось подключиться к серверу ")

ПРОВЕРЯЕТ, ЧТО Я ВЫПОЛНЕН

Я не думаю, что у меня есть какой-либо брандмауэр сервера, препятствующий этому:

[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   

Тестирование с помощью telnet изтерминальная сессия на моем mac, порт 80, кажется, открыт.Во-первых, используя общедоступный IPv2-IP:

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.

и общедоступный DNS (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.

И снова то же самое относится и к моим доменным именам - telnet на порт 80 показывает"Связано".

- Является ли тот факт, что «внешний хост» немедленно закрывает соединение?Должно ли оно оставаться открытым, если все работает как надо?

Запуск curl на хосте корректно возвращает мой простой файл index.html:

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

Однако запуск curl намой локальный компьютер - на сервер - возвращает:

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

Я также проверил веб-сервер "внутренне", запустив на сервере google chrome (без заголовка), чтобы создать скриншот, загруженный на мой локальный компьютер, и он показываетТЕСТОВОЕ ЗАДАНИЕ!(т.е. он работает):

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

Еще одна вещь, которую нужно добавить - когда я пытаюсь подключиться к веб-серверу с моего локального компьютера, в журналах веб-сервера (error_log или access_log) на сервере ничего не отображается.

Итак, мое мнение таково, что веб-сервер запущен и работает, работает локально, но не работает должным образом для всего, что приходит извне.Я сейчас в тупике.

1 Ответ

0 голосов
/ 21 декабря 2018

Doh!Я перезагрузил экземпляр и ... все работает сейчас!

22 года работаю с компьютерами, и мне потребовалось 22 часа, чтобы прибегнуть к перезагрузке.Дурак!

...