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

Рекомендуемый способ управления веб-серверами Apache

Мне было поручено перенести кучу (около 20) веб-сайтов, некоторые с сертификатами SSL, некоторые с базами данных, со старого сервера на новый.

Рассматриваемые серверы представляют собой выделенные серверы Linux (старый - RedHat, новый - CentOS), и на обоих установлен только Webmin.

Я хочу попытаться избавиться от утомительной задачи а) переноса сайтов и б) создания новых сайтов или изменения настроек. Мне интересно, стоит ли настраивать cPanel или что-то подобное, чтобы отвлечь работу от оболочки (без ручного управления ...) или, возможно, другого инструмента ...

Рассматриваемый бизнес не перепродает хостинг Joe Public, больше только для хостинга созданных и управляемых ими веб-сайтов, поэтому владельцу сайта не обязательно нужен доступ для изменения настроек и т. Д.

Мысли, предложения?

Чтобы избежать обоих ...

  1. накладные расходы на управление
  2. и человеческая ошибка

... Почему бы тебе не посмотреть на cfengine

Многие возразят, что это может быть излишним, но если вы задумаетесь, вы не захотите внедрять свою структуру управления сервером. после ваша сеть достаточно сложна, чтобы это оправдать. Начните сейчас, пока это просто, и по мере роста ваших потребностей (например, увеличение количества веб-серверов, добавление других сервисов в целом) вам не нужно вносить радикальные изменения, и вы уже будете знакомы с инструментом управления и будете иметь опыт работы с ним.

cfengine - не единственный инструмент, есть и другие (например, марионетка).

Всего 20 сайтов. Выполнение этого вручную - наиболее эффективное по времени решение, если вам не нужно выполнять миграцию регулярно.

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

Если у вас так много виртуальных сайтов, вам будет выгодно инкапсулировать каждую конфигурацию в отдельном подкаталоге в httpd.conf, возможно, в /etc/httpd.d/sites/siteA, siteB и т. Д. И т. Д. В этих подкаталогах вы можете также храните любые соответствующие сертификаты и тому подобное. С подкаталогом с аналогичным названием в / var / www / sites /, это станет значительно проще в использовании в будущем.

Я, конечно, предполагаю, что ваш новый сервер является выделенным виртуальным, на котором у вас есть root-доступ для установки всего, что вам нравится.

Вместо того, чтобы платить за Plesk или cPanel, я обычно устанавливаю Virtualmin, потому что сценарий установки заботится о virtualmin, webmin, mysql, apache, postfix и всем остальном, что вам нужно.

Теперь Virtualmin не идеален; при установке по умолчанию все виртуальные хосты помещаются в файл конфигурации apache, тогда как я бы предпочел, чтобы она создавала отдельные файлы .conf в папке «virtualhosts» - но она отлично подходит для управления виртуальными хостами, учетными записями db и всем этим утомительным материалом.

Вы также можете управлять заданиями cron, процессами, которые запускаются при загрузке, и т. Д. С помощью Webmin.

ДОПОЛНЕНИЕ: хотя в стороне, вам, вероятно, все равно придется делать много ручного копирования и редактирования, чтобы все снова работало, поскольку вы, вероятно, меняете операционные системы, версии программного обеспечения и структуру каталогов. Но я не думаю, что в этом что-то есть.

Вам нужна система управления конфигурацией. Два хороших варианта: Повар и Кукольный. Оба написаны на Ruby, оба используют декларативный синтаксис для определения ресурсов, и оба отлично подходят для управления серверами Apache и веб-сайтами.

Язык конфигурации Chef - это чистый Ruby DSL, а Puppet использует собственный настраиваемый DSL.

Opscode предоставляет множество Поваренные книги, включая Apache. Поваренную книгу Apache можно использовать для настройки статических файлов vhost для определенных сайтов и веб-приложений php / rails / django.

У Puppet есть Apache2 рецепты, но я давно на них не смотрел.