несколько виртуальных хостов на EC2 ubuntu — не удается получить доступ ко второму хосту, всегда обращается к умолчанию

#amazon-ec2 #ubuntu-10.10 #virtual-hosts #apache2.2

#amazon-ec2 #ubuntu-10.10 #виртуальные хосты #apache2.2

Вопрос:

плакат впервые, но, пожалуйста, помогите. Я искал и перенастраивал в течение 6 дней и потерял несколько клочков волос..

ПРОБЛЕМА: я хочу, чтобы на моем сервере Ubuntu было более 2 виртуальных хостов (1 ip), НО отображаются только первые сайты, перечисленные в алфавитном порядке с поддержкой. 000-по умолчанию www.domain1.com www.domain2.com

По отдельности все они работают (если я удаляю 2 для каждого, оставляя 1)

КОНФИГУРАЦИЯ: экземпляр сервера UBUNTU 10.10 EC2 (не стреляйте в меня за эту часть — надеюсь, проблема не в этом!) APACHE 2.2.16 DNS my.domain.com — к моему общедоступному ec2 dns (это работает)

Виртуальные хосты:

По умолчанию

 <VirtualHost *:80>
        DocumentRoot "/home/www/"
        <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Satisfy all
        </Directory>
        <Directory /home/www>
        Options Indexes Multiviews FollowSymLinks
        AllowOverride all
        Order allow,deny
        Allow from all
        </Directory>
        LogLevel debug
        ErrorLog /home/www/logs/error.log
        CustomLog /home/www/logs/access.log "combined"
</VirtualHost>
  

Виртуальный хост 1 — домен1

 <VirtualHost *:80>
        ServerAdmin webmaster@domain1.com
        ServerName domain1.com
        ServerAlias domain1.com www.domain1.com
        # Indexes   Directory Root.
        DirectoryIndex index.php
        DocumentRoot "/home/www/www.domain1.com/"
        # Directory directive
        <Directory "/home/www/www.domain1.com">
                Options Indexes Multiviews FollowSymLinks
                AllowOverride none
                Order allow,deny
                Allow from all
        </Directory>
        # CGI Directory
        ScriptAlias /cgi-bin/ /home/www/www.domain1.com/cgi-bin
        <Location /cgi-bin>
                Options  ExecCGI
        </Location>
        # Logfiles
        LogLevel debug
        ErrorLog "/home/www/www.domain1.com/logs/error.log"
        CustomLog "/home/www/www.domain1.com/logs/access.log" combined
</VirtualHost>
  

У меня также есть вышеупомянутое для domain2 в другом корневом каталоге документа с другим доменным именем

ссылки symb на месте: мой apache2ctl -St показывает следующую конфигурацию виртуального хоста:

 *:80       is a NameVirtualHost
         default server  (/etc/apache2/sites-enabled/000-default:4)
         port 80 namevhost  (/etc/apache2/sites-enabled/000-default:4)
         port 80 namevhost domain1.com (/etc/apache2/sites-enabled/www.domain1.com:4)
         port 80 namevhost www.domain2.com (/etc/apache2/sites-enabled/www.domain2.com:4)
Syntax OK
  

Мои порты.conf:
NameVirtualHost *:80
Прослушивание 80

 <IfModule mod_ssl.c>
    NameVirtualHost *.443
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>
  

Никаких изменений по умолчанию в моем apache2.conf и httpd.conf пуст.

Я пробовал следующее (и около сотни других):

[URL=»http://ubuntu-tutorials.com/2008/01/09/setting-up-name-based-virtual-hosting /»][/URL] [URL=»http://httpd.apache.org/docs/2.2/rewrite/vhosts.html»]http://httpd.apache.org/docs/2.2/rewrite/vhosts.html[/URL ] [URL=»http://ubuntuforums.org/archive/index.php/t-1466665.html»]http://ubuntuforums.org/archive/index.php/t-1466665.html[/URL ] [URL=»http://flurdy.com/docs/ec2/basics/index.html»]http://flurdy.com/docs/ec2/basics/index.html[/URL ] [URL=»http://www.webmasterworld.com/apache/3282118.htm»]http://www.webmasterworld.com/apache/3282118.htm[/URL]

кажется, я перепробовал все, с чем у всех остальных возникают проблемы, но, похоже, ничто не исправляет мое.

Возможности:
1) EC2
2) Разрешения на файлы — я изменил все на пользователя apache2 «www-data» — без кубиков.
3) Я придурок…будем надеяться, что это так, и один из вас, добрые люди, укажет мне на мою проблему. 🙂

Скоро чат…я буду здесь терять волосы.
С уважением, Logansanoh

Комментарии:

1. Похоже, это может быть связано с DNS. Пытаюсь исправить сейчас … давайте посмотрим, что произойдет, когда кеши очистятся сами!

2. Этот вопрос не имеет никакого отношения к ec2, это то, как вы настраиваете Apache.

3. У меня точно такая же проблема. Мне интересно, передается ли имя хоста в apache … т. Е. он может различать именованные виртуальные хосты, только если он получает имя. Насколько я могу судить, он не получает его, поэтому выбирает первый по умолчанию.

Ответ №1:

к сожалению, Slicehost планируется отключить, но у него есть хорошая документация о том, как реализовать виртуальные хосты.
Посетить :
http://articles.slicehost.com/2010/5/19/apache-virtual-hosts-on-ubuntu-part-1
http://articles.slicehost.com/2010/5/19/apache-virtual-hosts-on-ubuntu-part-2

Я отошел от slicehost, но их документация по-прежнему очень удобна.

В качестве примечания, вы, вероятно, не получаете здесь большого ответа, потому что этот вопрос лучше подходит для :
http://serverfault.com

Удачи, дайте нам знать, как, что пошло не так, приветствия!

Комментарии:

1. Правильно. Для тех, кому интересно, оказалось, что это DNS. Мне нужно было имя в моем DNS (mydomain.com ) Спасибо за тех, кто помог мне в #ubuntu и # apache

Ответ №2:

DNS был виновником. Все передавалось, как ожидалось, как в EC2, Ubuntu, так и в Apache. Проблема заключалась в том, что я использовал перенаправление URL в DNS. Это глупо! Это было так просто, я установил ANAME вместо этого, используя свой общедоступный IP-адрес в качестве псевдонима (www.domain1.com ) и то же самое для (www.domain2.com ) и все это сработало отлично. Теперь, если бы я только мог заставить TOMCAT работать с mod_proxy, я был бы на 100% готов!!