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

Использовать регулярное выражение в определении виртуального хоста

Мне нужно определить около 100 записей виртуального хоста поддомена в файле конфигурации сервера. Я хочу знать, есть ли способ сделать это с помощью регулярного выражения для увеличения кодов в файле конфигурации apache?

Вы должны взглянуть на это как из документации Apache, я думаю, что вам здесь нужно:
http://httpd.apache.org/docs/2.2/vhosts/mass.html

Основная идея состоит в том, чтобы заменить всю статическую конфигурацию механизмом, который работает динамически. Это дает ряд преимуществ:

  • Ваш файл конфигурации меньше, поэтому Apache запускается быстрее и использует меньше памяти.

  • Добавление виртуальных хостов - это просто вопрос создания соответствующих каталогов в файловой системе и записей в DNS - вам не нужно перенастраивать или перезапускать Apache.

Обновить:

С помощью Массовый виртуальный хостинг запрещает использование разных файлов журналов:

Главный недостаток состоит в том, что у вас не может быть разных файлов журнала для каждого виртуального хоста; однако, если у вас очень много виртуальных хостов, делать это в любом случае сомнительно, потому что они съедают дескрипторы файлов. Лучше войти в канал или в FIFO и организовать процесс на другом конце для распространения журналов клиентам (он также может накапливать статистику и т. Д.).

Однако на самом деле это не проблема, потому что вы можете использовать фильтр% v для CustomLog, который помещает ServerName перед каждым зарегистрированным запросом, вы можете затем фильтровать и разделять журналы, если это необходимо, на основе этого.

Хорошая практика - помещать эти журналы в базу данных mysql (на лету или через задание cron, канал или файл fifo), потому что SQL - отличный инструмент для извлечения из них значимой информации.
Взгляните на эту статью, в которой описывается настройка (прямого) ведения журнала базы данных через mod_log_mysql:
http://onlamp.com/pub/a/apache/2005/02/10/database_logs.html

Хранение ваших журналов непосредственно в базе данных mysql может быть хорошим решением через АРХИВ механизм хранения но у него есть свои ограничения (блокировка таблицы при записи). Альтернативой может быть создание вашей системы на более стандартном механизме хранения (например, innodb, xtradb). Если у вас уже есть сервер mysql, я бы попробовал это перед другими решениями, поскольку это не требует особого обучения.

Если вы любите приключения, вы можете взглянуть на MongoDB, как база данных, ориентированная на документы, она особенно подходит в качестве системы хранения журналов (быстрые, мощные возможности фильтрации, скорость вставки / чтения), но обязательно используйте для нее хороший выделенный сервер, так как вам понадобится оперативная память для его адекватной работы. .

Вы найдете подробную информацию о ведении журнала MongoDB здесь:

Нет, но что вы пытаетесь сделать? Наличие регулярного выражения в <VirtualHost> линия не имела бы смысла.

ServerAlias может иметь подстановочные знаки, но не регулярное выражение; это может дать вам то, что вам нужно?