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

Параметрический виртуальный хост Apache

У меня Virtualhost сделан таким образом:

<VirtualHost *:80>
        Servername www.website.com
        DocumentRoot /path/to/application-1.2.1/client/app/
        ErrorLog /var/log/apache2/logs/application.log
</VirtualHost>

куда application - это имя приложения, которое меняется каждый раз, когда мы развертываем новую версию, поэтому, например, следующий DocumentRoot будет:

DocumentRoot /path/to/application-1.2.2/client/app/

Можно ли создать виртуальный хост с подстановочным знаком или чем-то вроде:

DocumentRoot /path/to/application-*/client/app/

Чтобы мне не приходилось менять виртуальный хост каждый раз, когда я развертываю новую версию приложения?

Нет, у вас не может быть подстановочного знака.

Вместо этого используйте символические ссылки:

ln -s /path/to/application-1.2.2/client/app /path/to/application/client/app

и прочтите конфигурацию

<VirtualHost *:80>
        Servername www.website.com
        DocumentRoot /path/to/application/client/app/
        ErrorLog /var/log/apache2/logs/application.log
</VirtualHost>

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

В зависимости от вашей основной конфигурации вам может потребоваться добавить

    <Directory /path/to/>
        Options +FollowSymlinks
    </Directory>

в вашу конфигурацию.