На этой неделе я настраивал сервер 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) на сервере ничего не отображается.
Итак, мое мнение таково, что веб-сервер запущен и работает, работает локально, но не работает должным образом для всего, что приходит извне.Я сейчас в тупике.