HTTP не работает экземпляр EC2 с собственным доменным именем
У меня есть эта проблема, которую я уже разместил на форуме Amazon AWS. К сожалению, у меня нет четкого ответа, и я надеялся, что вы, ребята, сможете помочь. Вот ссылка: http://developer.amazonwebservices.com/connect/thread.jspa?messageID=198238
По сути, я не знаю, почему после связывания IP-адреса Elastic и сопоставления его с одним из моих доменов FTP-эхо-запрос работает нормально, но HTTP выполняет 302-перенаправление на имя хоста Amazon AWS, которое у меня было до того, как он связал Elastic-IP-адрес.
Вот вопрос с форума AWS: у меня есть экземпляр EC2 с установленными HTTP и FTP. Они оба работали. Затем я связал Elastic IP-адрес с этим экземпляром. Затем я сопоставил этот IP-адрес с именем, которое является поддоменом домена, которым я владею. Я думаю, что это имя А (я не делал картирование лично). Теперь FTP работает, а HTTP нет.
Имя хоста AWS до ассоциации Elastic IP: ec2-184-73-27-8.compute-1.amazonaws.com IP-адрес AWS и имя хоста после ассоциации: 174.129.7.254 и ec2-174-129-7-254.compute-1.amazonaws.com Домен, который сопоставлен с 174.129.7.254 с использованием записи A: demo.flashxml.net
FTP работает означает, что я могу подключиться к 174.129.7.254, ec2-174-129-7-254.compute-1.amazonaws.com и demo.flashxml.net.
HTTP не работает означает, что HTTP-запрос к 174.129.7.254, ec2-174-129-7-254.compute-1.amazonaws.com или demo.flashxml.net возвращает перенаправление 302 на ec2-184-73-27 -8.compute-1.amazonaws.com
Вот мой файл VirtualHost:
<VirtualHost *:80>
DocumentRoot /home/ec2-user/public_html/wordpress
ServerName demo.flashxml.net
ErrorLog logs/ec2-user-error_log
<Directory /home/ec2-user/public_html/wordpress>
AllowOverride FileInfo
Order Deny,Allow
Allow from All
</Directory>
</VirtualHost>
Я наконец понял, что случилось. Это тот факт, что я установил Wordpress на сервер, используя имя хоста, предоставленное Amazon. После связывания Elastic IP и обновления DNS-записей сервер был доступен - доказательство тому - работающий FTP. Перенаправление 302 при доступе через HTTP было вызвано настройками имени хоста Wordpress.
Итак, из всего этого я узнал, что мне нужно сначала настроить свой IP и DNS и только после этого устанавливать Wordpress или любое другое веб-приложение.
4 ответа
Во-первых, двойная публикация не очень хорошая этика, и если заставить людей уйти, чтобы найти ваш вопрос, это только усугубляет ситуацию. Пожалуйста, рассмотрите возможность редактирования своего вопроса, чтобы он сам содержался здесь, а затем убедитесь, что вы обновите оба сайта любыми событиями и ответом, как только вы это выясните.
Во-вторых, здесь действительно недостаточно информации, чтобы понять, что вы сделали неправильно. Предложение на форуме AWS является хорошим. Похоже, вы все еще делаете некоторые вещи с IP и записями хоста до того, как был назначен ваш эластичный IP. Когда вы сделаете это назначение, ваше имя хоста и ip изменится! Однако вам необходимо разработать свою конфигурацию. Как выглядит ваш DNS? К какому домену вы пытаетесь подключиться и к чему он "перенаправляется"? Речь идет о доменах имен хостов ec2 или о вашем собственном домене? Если первое, вы просто используете неправильный адрес. Если последний ваши записи DNS не введены правильно. Они должны быть CNAME для вашего эластичного имени хоста ip, чтобы возвращались правильные внутренние и внешние адреса.
У меня была такая же проблема, и я нашел решение:
- Проверьте, можете ли вы получить доступ к http с локального хоста.
curl http://localhost
- Проверьте группы безопасности на AWS EC2, чтобы убедиться, что вы принимаете трафик через порт 80.
- И последнее, но не менее важное: проверьте настройки брандмауэра в вашем экземпляре EC2.
Возможно, вы используете один из сервисов Amazon, который требует, чтобы запись dns была CNAME, а не A.
Недавно я отправил запросы на использование нескольких данных об амазоне против геоднов, и клиенты сказали, что сервисы амазонки предусматривают использование CNAME, а не A.
Это связано с тем, что конечная точка может быть изменена, поэтому единственный безопасный способ сделать это - использовать запись CNAME, которая ссылается на запись amazon A, которую amazon может изменить на лету.
Им специально сказали, что поиск ip и использование его в A не сработает.
У меня была та же проблема с док-контейнером, который я просто установил внутри недавно созданного EC2. Я мог получить к нему доступ через curl с localhost, но не с публичного DNS. После прочтения Игоря С.' ответ Я проверил настройки брандмауэра и понял, что настройки FW по умолчанию принимают только SSH.
Я думаю, что это происходит, когда вы используете быструю настройку вместо обычного мастера настройки, который спросит вас обо всех видах (включая настройки FW) перед запуском экземпляра.