У меня 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>
в вашу конфигурацию.