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

инструменты для рефакторинга файлов конфигурации Apache

Я столкнулся с проблемой очистки неоправданно большой конфигурации Apache. Он накапливал грязь почти за десять лет. Я начинаю с его рефакторинга, исправления табуляции / отступов, разбиения разделов на включения.

Есть ли у вас какие-либо полезные скрипты / методы / файлы конфигурации bbedit или общие советы по сохранению организованной конфигурации apache? Есть ли какие-нибудь книги / веб-сайты, посвященные правильной организации конфигураций Apache?

Однажды мне пришлось иметь дело с таким файлом, каждый раз, когда компания покупала другую компанию, они добавляли свои бренды в 1 БОЛЬШОЙ файл httpd.conf, разные бренды приходилось тестировать в разных тестовых средах. Наш подход был:

  1. Начните с нового пустого файла и включите только то, что нужно было включить. Сохраните его в системе контроля версий, если она у вас есть.
  2. Используйте директиву include. Это позволяет включить отключение целых брендов.
  3. Используйте систему шаблонов для создания виртуальных хостов, как показано ниже, с более чем дюжиной брендов. работает в 5 или 6 средах
  4. Используйте электронную таблицу, созданную компанией, для создания файлов виртуальных хостов. Это хорошо работало с модулем парсера perl excel. В конце концов бизнес-аналитики могли просто изменить электронную таблицу и получить новый набор виртуальных хостов для включения, и администраторы были счастливы, потому что они могли отключать / включать среды, комментируя / активируя одну строку в httpd.conf.
  5. grep из всех строк комментариев и пустых строк. Это кажется менее сложным, если вы уменьшите файл с 5000 строк до 2000, удалив все интервалы и комментарии.

# Begin Virtual Host: [% brand_description %]
Listen [% dyn_ip %]:[% dyn_port %]
<VirtualHost [% dyn_ip %]:[% dyn_port %]>
    ServerAdmin [% server_admin %]
    ServerName [% dyn_ip %]:[% dyn_port %]
    DocumentRoot "[% document_root %]"

    <Directory />
        DirectoryIndex index.html
        Options Indexes FollowSymLinks
        AllowOverride None
    </Directory>

    ErrorLog  [% error_log %]
    CustomLog [% custom_log %] combined

    JKMount [% jk_mount_point  %] [% jk_balancer_name %]

    ErrorDocument 502 /holding/50x_disruption-page.html
    ErrorDocument 503 /holding/50x_disruption-page.html
    RedirectPermanent [% payment_page %]  [% brand_payment_url %]
 </VirtualHost>
# End Virtual Host: [% brand_description %]