Можно ли настроить несколько виртуальных хостов с одним ip / доменом?
У нас есть один домен (example.com), указывающий на наш сервер по адресу ip (123.123.555.555). В местоположении 123.123.555.555 нам требуется следующая структура папок:
# production level
/htdocs/www/prod/proj1/
/htdocs/www/prod/proj2/
# dev level
/htdocs/www/dev/proj3/
/htdocs/www/dev/proj4
Где в идеале мы хотели бы, чтобы example.com
разрешил в /htdocs/www/prod/
и example.com/dev
разрешил в /htdocs/www/dev/
.
Достаточно просто нет?
Предостережения:
dev
и prod
нужны разные правила установки / apache (allow deny from
и т. Д.) ) prod
необходимо разрешить без prod
в URL. example.com/proj1
будет идти example.com/prod/proj1
Попытки пока ..
Я попытался настроить тот же виртуальный хост, но присвоение каталогу псевдонима /
отправляет его в соответствие, утверждая, что он будет перезаписан позже. Это имеет смысл, потому что /
соответствует /
, но также и /dev
Я также пытался настроить несколько виртуальных хостов с apache2 'sites-available / sites-enabled, но кажется, что я не могу различить это основано на IP / домене. Обычно я бы попытался что-то вроде <Directory 'sub.domain.com'>
и <Directory 'sub2.domain.com'>
У вас есть как минимум две опции:
Установите виртуальный хост для субдомена example.com и направьте его в вашу папку dev. Вот пример файла .conf для размещения в sites-available:
<VirtualHost *:80>
DocumentRoot "/htdocs/www/dev/proj3/"
ServerName dev.example.com
<Directory "/htdocs/www/dev/proj3/">
allow from all
Options +Indexes
</Directory>
</VirtualHost>
Настройте виртуальный хост для другого порта, т.е. 8080 или любого другого, который вы выбираете, и укажите его на dev папка.
<VirtualHost *:8080>
DocumentRoot "/htdocs/www/dev/proj3/"
ServerName example.com
<Directory "/htdocs/www/dev/proj3/">
allow from all
Options +Indexes
</Directory>
</VirtualHost>