Я установил Apache на Ubuntu 12.04 внутри AWS VPC. Сервер Apache находится в частной подсети, доступной через NAT. Я могу получить доступ к Apache через порт 80, как и ожидалось, от самого сервера (даже используя IP-адрес, а не 127.0.0.1). Когда я пытаюсь получить доступ к серверу с удаленного сервера (в данном случае NAT), я получаю сообщение об ошибке 404 от Apache. Это не похоже на сетевую проблему. Я могу подключиться к серверу Apache на 80 с помощью telnet. Я использую wget, чтобы проверить, могу ли я получить документ с сервера Apache (также получает 404).
Apache настроен на "Listen 80", а виртуальный хост также "*: 80". Есть ли у кого-нибудь идеи, что может ограничивать доступ с удаленных хостов?
Спасибо.
Изменить: я создал еще один экземпляр Ubuntu 12.04 (тот же AMI) в той же подсети, установил Apache, и все, похоже, работает, как ожидалось, что означает, что я могу получить доступ к index.html с локального хоста, с удаленного хоста в той же подсети и из экземпляр NAT. Обе из них были стандартными установками Apache с использованием «sudo apt-get install apache2». Сейчас пытаюсь найти отличия. Кстати, iptables не работает ни на одном экземпляре.
Если вы пытаетесь подключиться к сайту через DNS-имя, вы должны установить директиву «ServerName» в разделе VirtualHost. У меня были аналогичные проблемы с моей последней установкой Apache с несколькими виртуальными хостами.
Оказывается, в iptables была запись NAT, которая перенаправляла 80 на 8080 (tomcat). Он не появился с "sudo iptables --list". Я промыл стол, и он заработал.
Спасибо всем, кто помог.