Мы устанавливаем среду WordPress на 4 серверах IIS. Мы рассматриваем возможность использования запланированной задачи, запускающей скрипт robocopy для репликации каталога WordPress каждые 5 минут.
Каковы мнения о таком подходе? Кто-нибудь когда-либо использовал это или подобное?
windows
iis
web-server
wordpress
joebegborg07
источник
источник
Ответы:
Наличие четырех интерфейсных серверов, которые совместно используют одни и те же файлы и каждый из которых способен писать без использования какой-либо DFS или сторонней программы, предназначенной для синхронизации каталогов, было бы непростой задачей.
С лазурью вы можете смотреть на 3 вещи.
Общее хранилище, может потребоваться некоторая стоимость, связанная с получением собственного выделенного хранилища, и я не уверен в конфигурации, однако Azure действительно предлагает это. Это обеспечит доступность всех ваших файлов для каждого сервера, как только они будут записаны.
Azure DFS, DFS - это инструмент синхронизации каталогов на основе Windows, который работает довольно хорошо, также не уверен в стоимости, но настройка может быть немного проще. DFS работает асинхронно, поэтому есть небольшая задержка, но не большая.
(Я собираюсь объяснить, как это будет сделано, а затем никогда больше об этом не говорить, потому что это ужасная идея, и она потерпит неудачу.) Создайте сценарий, который сначала сравнивает данные на всех четырех серверах, а затем копирует дифференциальные данные. Вам нужно будет предоставить общий доступ к каждому каталогу одному серверу, на котором выполняется сценарий, настроить разрешение, чтобы сервер мог читать и писать, а затем устранять неполадки, устранять неполадки.
Любой из вышеперечисленных вариантов сделает эту работу, если ваша работа зависит от этой работы, я бы порекомендовал вам держаться подальше от варианта 3.
При этом, и вы не пытаетесь тратить деньги, следуйте инструкциям ниже.
посмотрите на программу под названием "бесплатная синхронизация файлов". В бесплатной версии есть несколько действительно хороших функций, я считаю, что есть платная версия, но я не уверен в улучшениях, которые вы получаете. Я использовал его во многих моих средах разработки, когда пытался достичь чего-то похожего на то, что вы хотите сделать, и ленился настраивать DFS.
Сделать доступным для записи только один сервер, это можно легко сделать, настроив URI на каждом сервере, который сообщает, если создать статью перейдет на ServerA, или переписать URL-адрес в вашем web.config, или если WordPress используется php:
заголовок ('Location: http://myhost.com/mypage.php ');
Каждый займет немного программирования и знания PHP, IIS.
Короткий ответ, который вы не можете, ну, это не совсем верно, однажды у меня был клиент, который был непреклонен в том, чтобы не использовать загрузочный балансировщик, он смог через серию сценариев PowerShell переместить соединение с одного сервера на другой в зависимости от количества рабочие процессы на каждой коробке или что-то в этом роде. В любом случае это очень сложно сделать, и не стоит тратить время и силы на это.
Посмотрите, не можете ли вы настроить балансировку сетевой нагрузки на серверах. Для этого потребуется дополнительный IP-адрес, но только одно изменение DNS и трафик может быть распределен для чтения между 3 серверами.
Удачи!
источник
Спасибо всем за предложения людей.
В нашем решении использовался метод одноранговой синхронизации с использованием инструмента под названием resilio.
Resilio позволил нам настроить несколько компьютеров (в данном случае IIS Front-end) в одноранговом кластере синхронизации. На каждом компьютере в кластере выбирается папка, которая будет использоваться для процесса синхронизации.
Служба resilio (служба Windows работает в фоновом режиме) отслеживает эти папки на наличие изменений, и если изменение вносится в любую из указанных папок в рассматриваемых интерфейсах, resilio передает эти изменения на другие серверы.
Я надеюсь, что это может помочь другим, сталкивающимся с подобной проблемой в будущем.
источник
Я не думаю, что запланированные задания и Robocopy - отличный подход. Из-за 5-минутного окна будут времена, когда ресурс запрашивается, но сервер, выбранный балансировщиком нагрузки, не будет иметь его в наличии. Для в основном статических сайтов это будет происходить гораздо реже, чем с часто меняющимися занятыми сайтами. Более высокая частота или использование другой технологии синхронизации, такой как Bittorrent Sync (теперь называется Resilio Sync ), может улучшить это, но не устранит проблему.
Поместите ваш wp-контент или, возможно, просто папку wp-content / uploads на общий диск, было бы лучшим решением. Еще один способ взглянуть на это - разместить один из серверов на этой папке, а другие разделить ее. При кэшировании диска нагрузка на сервер не должна быть намного выше, чем на других серверах.
Обновить
Посмотрите на эту статью для идей о кэширования страниц, и это один для CDN. Речь идет о Nginx, так что вам нужно разработать его для IIS, но теория, лежащая в основе этого, справедлива для любого веб-сервера.
источник