2013-05-05 4 views
3

Я пытаюсь настроить виртуальный хост на свой экземпляр EC2. Я использую ubuntu на моем экземпляре EC2 и apache2 в качестве веб-сервера.Как настроить несколько виртуальных хостов на AWS EC2 Запуск Ubuntu?

У меня есть 3 приложения (на базе Интернета) в 3-х различных папок в/вар/WWW: -/вар/WWW/app_A -/вар/WWW/app_B -/вар/WWW/МойВебСайт

Я хочу, чтобы люди имели доступ только к app_A и app_B, используя IP-адрес (я приложил эластичный IP к экземпляру EC2), как в http://my.ip.address/app_A и http://my.ip.address/app_B. Что касается приложения в/var/ww/mywebsite, я хочу, чтобы люди имели доступ к этому через мой домен mywebsite.com. Я указываю домен на свой IP-адрес EC2 (my.ip.address).

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

Пожалуйста, расскажите, как правильно настроить виртуальный хост, чтобы я мог достичь своей цели, указанной выше.

ответ

5

Это довольно просто, поскольку у вас уже установлен апач, вы сможете увидеть файл с именем: /etc/apache2/sites-enabled/000-default, который указывает на вашу папку www в пределах var. Идея заключается в том, что апач берет его в качестве основного файла конфигурации, следовательно, вы можете определить, как много .conf файлов, как вам нужно так, вы можете иметь что-то вроде этого:

/etc/apache2/sites-enabled/ 
├── 000-default -> ../sites-available/default 
└── subsystems 
    └── appA.conf 
    └── appB.conf 
    └── appMyWebSite.conf 

Так легче обрабатывать, потому что у вас есть все сегментируется в несколько файлов conf, сколько вам нужно.

Теперь, что они должны иметь? Это зависит от того, что вам нужно, но это в значительной степени то, что вам нужно иметь:

<Directory "/var/www/mywebsite.com/"> 
    Options Indexes Includes FollowSymLinks MultiViews +ExecCGI 
    AddHandler cgi-script cgi pl 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    DirectoryIndex index.cgi index.html 
</Directory> 

<VirtualHost *:80> 
    ServerName mywebsite.com 
    ServerAdmin [email protected] 
    SetEnv VAR_IF_YOU_NEED_ONE VALUE 
    RewriteEngine on 

    DocumentRoot "/var/www/mywebsite.com/" 

    LogLevel warn 
    ServerSignature Off 

    #And whatever you need take a look to apache documentation 
</VirtualHost> 

Таким образом, вы можете указать свои доменные имена на тот же адрес IP-адрес сервера, и Apache будет обрабатывать, что в зависимости от имени этих доменов (т.е. тот же ip для всех ваших доменов)

Надеюсь, это поможет.

+0

спасибо. Это помогает. – reflyh2

+1

Я думаю, что этот ответ оставил последний важный шаг, создав символическую ссылку с сайта с поддержкой сайтов на любой новый сайт, определенный в 'sites-available'. Я все равно должен был это сделать. – cdmo

+0

@cdmo Или, если доступно, используйте команду «a2ensite», которая устанавливает для вас символическую ссылку и, вероятно, выполняет крошечную проверку ошибок. – Desty