Я заметил эта почта но я ищу больше конкретики.
У меня есть 2 сервера под управлением Windows 2008 Server Web Edition, и я запускаю веб-сайты на обоих из них. Я хотел бы иметь возможность зеркально отображать настройки IIS на каждом поле из другого, чтобы в случае сбоя «сервера 1» я мог войти на «сервер 2» и быстро получить все сайты, которые работали на «сервере 1». запущен и работает. Это не простое зеркало, поскольку у меня уже есть сайты на «сервере 2», которые должны работать, поэтому в основном я хочу добавить сайты с «сервера 1».
Я уверен, что получу несколько комментариев по этому поводу, так что да, наши серверы выдерживают повышенную нагрузку. Я также хочу держаться подальше от обсуждения DNS, поэтому, пожалуйста, не будем этого делать. Я также понимаю, что мне нужно будет добавить определенные IP-адреса к сетевому адаптеру «server 2», и меня это тоже устраивает, если я могу сократить другие ручные задачи, чтобы улучшить время безотказной работы и уменьшить количество ошибок, возникающих вручную.
В настоящее время я выполняю резервное копирование баз данных и кода из каждого ящика в другой, но, как вы понимаете, восстановление - это медленный, ручной и трудоемкий процесс, подверженный ошибкам.
Я ищу возможность легко восстановить все настройки, которые были на каждом сайте. Например: SSL-сертификаты, IP-адреса, физический путь к коду для сайта, привязки, сопоставления обработчиков и т. Д. Я надеюсь, что все пулы приложений тоже будут восстановлены, так же, как они были на другом сервере с правильной версией платформы и режимом конвейера. .
Насколько я понимаю, в applicationHost.config находится большая часть этого материала. Но если я добавляю сайты на веб-сервер, на котором уже запущены другие, я предполагаю, что не могу заменить этот файл, поскольку это означало бы потерю всех моих текущих настроек. Я также не слишком увлечен модификацией этого файла вручную.
Осмотревшись, я нашел релиз-кандидата средства веб-развертывания Microsoft (learn.iis.net/page.aspx/346/web-deployment-tool/). Итак, наконец, теперь, когда у вас есть много предыстории, возникает вопрос:
Есть ли у кого-нибудь опыт быстрого и (в основном) автоматического добавления сайтов в IIS 7, на которых уже работают другие сайты? Кто-нибудь делал это с помощью подхода «appcmd add backup» и [Web Deployment Tool] [2], и если да, то с какими трудностями вы столкнулись?
В итоге я использовал Инструмент веб-развертывания Microsoft RC1 (MSDeploy). Он очень подробный и имеет ТОННУ опций. Это позволяет выполнять резервное копирование и передачу по сайту. Вы можете сделать резервную копию сайта в zip-архиве с помощью командной строки или графического интерфейса, или вы можете синхронизировать / переместить сайт на другой сервер немедленно (я думаю, что это использует веб-службы для переноса и установки всего). Этот инструмент сохраняет все ваши настройки (привязки, IPS, SSL-сертификаты, сопоставления обработчиков и т. Д.). Вы можете просматривать зависимости (код в gac и т. Д.) И даже перемещать базы данных.
Восстановление из архива совсем несложно. Я бы порекомендовал этот инструмент всем, кто хочет быстро восстанавливать сайты.
С IIS7 это становится НАМНОГО проще. То, что вы ищете, это «Общая конфигурация». Вы можете установить это на глобальном уровне на сервере. С этим вы можете иметь горячий-горячий или горячий-теплый, как вы описали.
На основном сервере используйте «экспорт» в общей конфигурации. Это сохранит машинный ключ сервера (отличный от ключа машины ASP.NET). Это гарантирует, что все зашифрованные данные могут быть готовы на новом сервере. Это также сохранит applicationHost.config и administrator.config. После того, как вы выполните импорт на 2-м сервере, applicationHost.config и administrator.config могут (и должны) быть на 100% одинаковыми для обоих серверов.
Таким образом, вы можете использовать DFS-R для автоматической 100% синхронизации конфигураций или использовать что-то вроде robocopy, чтобы делать это через определенные промежутки времени, в зависимости от вашего любимого инструмента.
Вам также не нужно указывать другой путь на основном сервере. Просто используйте экспорт ради 2-го сервера.
Инструмент веб-развертывания великолепен, но для того, о чем вы говорите, лучше подходит общая конфигурация.
Следует отметить, что сертификаты не хранятся в этих файлах, поэтому вам нужно делать их вручную при их настройке или использовать что-то еще (например, инструмент веб-развертывания) для их синхронизации.
Еще одна вещь, которую вы можете рассмотреть в качестве недорогого, но мощного балансировщика нагрузки, - это новая технология ARR от Microsoft. (Маршрутизация запросов приложений)
Я знаю, что это будет звучать безумно, но почему бы не переместить базы данных на третий сервер и не настроить все сайты на обоих веб-серверах, чтобы все сайты были избыточными?