В моей конфигурации apache много виртуальных хостов, каждый из которых имеет довольно большое количество настроек. Проблема в том, что у большинства виртуальных серверов одинаковые настройки. Итак, файл конфигурации огромен, он полон идентичных виртуальных хостов, которые отличаются только ServerName
директива. Чтобы изменить или добавить настройку, мне нужно пройти через все эти хосты.
Можно ли каким-то образом обмениваться настройками между виртуальными хостами, но у них все еще есть несколько из них со своими?
я надеялся динамические хосты было бы хорошим решением, но, насколько я понимаю, это не соответствует моей проблеме, потому что нет возможности установить определенные настройки для некоторых из vhosts. Более того, я не хочу, чтобы мои vhosts были динамическими, потому что у меня их фиксированное количество. ServerAlias
Директива также не является решением, потому что мне нужно знать, с какого URL-адреса пришел пользователь.
У меня аналогичная ситуация с вами, и моим решением было написать (Perl) скрипт, который генерирует для меня конфигурации vhost.
У меня есть файл конфигурации, в котором перечислены несколько настроек, которые различаются для каждого сервера (например, ServerName, SSL-сертификат и т. Д.), А затем Perl-скрипт объединяет уникальные настройки с общими и записывает множество файлов conf в / etc / httpd / conf. d.
Затем я включаю их все примерно так в основной конфиг:
Include conf.d/*.conf
Каждый раз, когда я добавляю новый виртуальный хост, я просто добавляю данные в конфигурационный файл сценария Perl, запускаю сценарий и перезагружаю Apache.