Wordpress на реплікації IIS за допомогою роботоскопії


10

Ми встановлюємо середовище wordpress на 4 серверах IIS. Ми розглядаємо можливість використання запланованого завдання, що запускає сценарій роботизованої копії, для копіювання каталогу Wordpress кожні 5 хвилин.

Які думки щодо такого підходу? Хтось коли-небудь використовував це чи подібне?


Що таке 4 IIS-сервери фіфічні або VM? Що ти реплікуєш даними або базами даних та конфігураціями? Не впевнений, чому у вас буде 4 сервера, 1 це майстер (я припускаю), а інші - пасивні, якщо ви намагаєтеся досягти НА, що не буде працювати.
Ентоні Форніто

1
друге питання (і, мабуть, найважливіше), чому ви запускаєте wordpress на Windows?
Ентоні Форніто

Дякуємо @AnthonyFornito за вашу відповідь. Запуск Wordpress на Windows з внутрішніх причин. Я просто намагаюся з цим працювати. Я після реплікації файлів веб-сайту (реплікація бази даних вже обробляється через MYSQL). Передні кінці - це VM на Azure. Я в основному після рішення, де всі передні частини мають однакові файли веб-сайту. Ви можете щось запропонувати?
joebegborg07

Відповіді:


12

Наявність 4 серверів на передньому кінці, які одночасно обмінюються однаковими файлами, і кожен може писати, не використовуючи якусь програму DFS або сторонні програми, присвячені синхронізації каталогів, було б нічною кобилою.

З блакитним виглядом ви можете розглянути три речі.

  1. Спільне сховище, можливо, є певна вартість, пов’язана з отриманням власного виділеного сховища, і я не впевнений у конфігурації, однак Azure пропонує це. Це забезпечить доступ до всіх ваших файлів на кожному сервері, як тільки вони будуть записані.

  2. Azure DFS, DFS - це інструмент синхронізації каталогів на основі Windows, який працює досить добре, також не впевнений у вартості, але конфігурація може бути трохи простішою. DFS працює асинхронно, тому є невелика затримка, але не дуже.

  3. (Я збираюся пояснити, як це було б зробити, а потім більше ніколи про це не говорити, тому що це жахлива ідея і провалиться.) Створіть сценарій, який спочатку порівняє дані на всіх чотирьох серверах, а потім скопіює диференціальні дані. Вам потрібно буде поділити кожен каталог на одному сервері, на якому працює сценарій, надати дозвіл на налаштування, щоб сервер міг читати і писати, а потім виправляти неполадки, вирішувати проблеми.

Будь-який варіант зверху зробить цю роботу, якщо ваша робота залежить від цієї роботи, я б рекомендував вам триматися подалі від варіанту 3.

Незважаючи на це, і ви не намагаєтесь витрачати гроші, виконайте наведені нижче дії.

  1. подивіться програму під назвою "безкоштовна синхронізація файлів". Є кілька дійсно хороших функцій для безкоштовної версії, я вважаю, що за платну версію є платний, але я не впевнений у отриманих вами покращеннях. Я використовував це в багатьох моїх розробниках, коли намагався досягти чогось подібного до того, що ти шукаєш, і лінувався налаштувати DFS.

  2. Зробіть лише один сервер, який можна записати, це легко зробити, налаштувавши URI на кожному сервері, який говорить, що якщо створити статтю, перейдіть до ServerA або перезапишіть URL у вашій web.config, або якщо WordPress використовується php:

    заголовок ("Місцезнаходження: http://myhost.com/mypage.php ");

Кожен займе трохи кодування та знань PHP, IIS.

  1. Дійсно весела частина, оскільки ServerA є автором сервера (лише сервер, що можна записати), як ми направляємо трафік на ServerB, ServerC та ServerD для читання без балансира навантаження?

Коротку відповідь ви не можете, ну це не зовсім правда, у мене колись був клієнт, який був невдоволений тим, що не використовувати навантажувальний навантажувач, він міг за допомогою ряду скриптів повноважень перенести з'єднання з одного сервера на інший виходячи з кількості працівник обробляє кожну коробку чи щось подібне. У будь-якому випадку це дуже важко зробити і не варто витрачати час і енергію.

Подивіться, якщо ви не можете налаштувати балансування мережевого навантаження на серверах, для цього знадобиться додатковий IP, але його буде змінено лише один DNS і трафік може бути розподілений для читання на трьох серверах.

Удачі!


Велике спасибі за ваші пропозиції. Єдине центральне сховище було вузьким місцем для нас, оскільки в нас було це налаштування раніше, але не справлялося з великим трафіком. Нам потрібно було швидке рішення через термін. Зрештою, ми використовували resilio, який є рівномірним рівним синхронізуючим рішенням у режимі реального часу, який виявляє зміни на будь-якому із серверів та реплікує на інший сервер. Я сподіваюся, що кожен, хто має однакові або подібні проблеми, може вирішити ці проблеми так само, як і для нас. Я тестую вашу пропозицію щодо перезапису URL-адреси для WP бекенда та підштовхую зміни до інших машин. Знову дякую.
joebegborg07

NLB не працює на Azure (немає шару 2, якщо ви хочете по-справжньому жахливих кошмарів, просто спробуйте подивитися таблицю ARP в Azure VM).
Массімо

12

Дякую за всі поради людей.

Наше рішення полягало у використанні підходу синхронізації однорангових - за допомогою інструменту під назвою resilio.

Resilio дозволив нам налаштувати декілька комп'ютерів (в даному випадку IIS Передні кінці) в одноранговому кластері синхронізації. Папка вибирається з кожного комп’ютера кластеру, який буде використовуватися для процесу синхронізації.

Служба resilio (служба Windows, що працює у фоновому режимі), відстежує ці папки за будь-якими змінами, і якщо в будь-яку із зазначених папок на передніх кінцях, про які йдеться, вноситься зміна, resilio підштовхне цю зміну до інших серверів.

Я сподіваюся, що це може допомогти іншим, хто стикається з подібною проблемою в майбутньому.


11

Я не думаю, що заплановані завдання і Робокопія - це чудовий підхід. Через 5-хвилинне вікно буде час, коли запитується ресурс, але сервер, вибраний балансиром навантаження, не матиме його. У більшості випадків статичні сайти трапляються набагато рідше, ніж із часто заміненими зайнятими сайтами. Більш висока частота або використання іншої технології синхронізації, такої як Bittorrent Sync (тепер її називають Resilio Sync ), це вдосконалить це трохи, але не усуне проблему.

Поміщення вашого wp-контенту або, можливо, просто папки wp-content / upload на спільний диск буде кращим рішенням. Іншим способом переконатися в цьому було б мати один із серверів, що розміщують цю папку, а інші дозволити їй поділитися. При кешування диска навантаження на сервер не повинно бути набагато вище, ніж на інших серверах.

Оновлення

Подивіться у цій статті ідеї щодо кешування сторінок, а ця - для CDN. Йдеться про Nginx, тому вам потрібно буде розробити це для IIS, але теорія за ним справедлива для будь-якого веб-сервера.


Дякуємо за вашу пропозицію @Tim. Як ви сказали, веб-сайт динамічний, регулярні оновлення файлів завдяки плагінам wordpress на місці; Це означає, що кожен передній кінець може мати різні файли часом. Ви коли-небудь випробовували таке виробниче середовище (приблизно 500 - 1000 одночасних користувачів); тобто зберігання файлів веб-сайту у центральному сховищі та відображення на спільному диску? Якщо так, яким був досвід.
joebegborg07

Ні, я не перевіряв цей сценарій - мені це не потрібно, оскільки я кешую і використовую CDN. Вам потрібно буде завантажити тестові сервери на передньому кінці, включаючи файловий сервер із заднім кінцем. Однак, якщо ваші сторінки не розроблені для кешування кожної сторінки користувачів, це може значно знизити завантаження, як і використання розподілу вмісту - CloudFlare має вільний рівень. Це справедливо, навіть якщо ви оновлюєте кожні 5 хвилин. Google "Nginx Microcaching" для теорії, яка стоїть за ним, але вам, очевидно, доведеться реалізувати його по-іншому на IIS. Кешування заголовків є досить важливим, якщо ви йдете цим маршрутом. Дивіться також оновлення вище.
Тім
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.