Назад | Перейти на главную страницу

виртуальный хост на основе имени - укажите доменное имя, а также оставьте IP-адрес открытым

У меня есть доменное имя под названием dumbdom.com. У меня есть эластичный IP-адрес для моего экземпляра AWS EC2, который называется my.ela.stic.ip. Корень htdocs моего экземпляра EC2 на базе Linux находится в /var/www/html/.

Я установил /etc/httpd/conf.d/vhost.conf файл для направления домена dumbdom.com к /var/www/html/my_dumb_app/ и это работает нормально! В vhost.conf файл выглядит так:

NameVirtualHost *
<VirtualHost *> 
   ServerName dumbdom.com
   DocumentRoot /var/www/html/my_dumb_app
</VirtualHost>
<VirtualHost *> 
    ServerName blog.dumbdom.com
    DocumentRoot /var/www/html/my_blog_directory
</VirtualHost>

Теперь я хочу dumbdom.com & blog.dumbdom.com продолжать приземляться на /var/www/html/my_dumb_app/ & /var/www/html/my_blog_directory соответственно; и я также хочу все остальное через my.ela.stic.ip адрес просто перейти к /var/www/html вроде нормально. Так что собираюсь dumbdom.com и собираюсь my.ela.stic.ip/my_dumb_app в конечном итоге приземлится в том же месте.

Так получилось, что поскольку мой файл vhost.conf имеет <VirtualHost> теги для dumbdom.com & blog.dumbdom.com, попытка доступа к другим каталогам сервера через elastic_ip вызывает 404-NotFound ошибка.

Спасибо

Согласно http://httpd.apache.org/docs/2.2/vhosts/name-based.html, вы можете создать запись VirtualHost для IP-адреса.

Так что у вас будет что-то вроде

<VirtualHost my.elas.stic.ip>
   ServerName my.elas.stic.ip
   DocumentRoot /var/www/html
</VirtualHost>

Также имейте в виду, что первое объявление vhost используется по умолчанию - это, вероятно, не повлияет на вас, но любой, кто обращается к вашему экземпляру через внешний IP-адрес экземпляра или доменное имя экземпляра EC2, получит все, что будет первым.

Изменить: есть несколько способов получить доступ к вашему экземпляру EC2. Во-первых, у каждого экземпляра есть как общедоступные, так и частные IP-адреса, а также общедоступные и частные записи DNS. Доступ к экземпляру через один из них (например, ec2-x.x.x.x.y.amazonaws.com) не будет соответствовать ни одному из имен хостов, поэтому будет выбрано значение по умолчанию. При перезапуске, например, и перед повторным назначением эластичного IP-адреса то же самое произойдет и с внешним IP-адресом.