Konfigurujemy środowisko wordpress na 4 serwerach IIS. Rozważamy użycie zaplanowanego zadania wyzwalającego skrypt robocopy do replikacji katalogu wordpress co 5 minut.
Jakie są opinie na temat takiego podejścia? Czy ktoś kiedykolwiek używał tego lub podobnego?
windows
iis
web-server
wordpress
joebegborg07
źródło
źródło
Odpowiedzi:
Posiadanie 4 serwerów front-end, które współużytkują te same pliki w tym samym czasie i każdy jest w stanie pisać bez użycia DFS lub programu innej firmy dedykowanego do synchronizacji katalogów, byłoby koszmarną klaczą.
Dzięki lazurowi możesz przyjrzeć się 3 rzeczom.
Magazyn współdzielony, może istnieć pewien koszt związany z uzyskaniem własnego magazynu dedykowanego i nie jestem pewien konfiguracji, jednak platforma Azure to oferuje. Dzięki temu wszystkie twoje pliki będą dostępne na każdym serwerze, jak tylko zostaną zapisane.
Azure DFS, DFS to narzędzie do synchronizacji katalogów oparte na systemie Windows, które działa dość dobrze, nie jest również pewien kosztów, ale konfiguracja może być nieco łatwiejsza. DFS działa asynchronicznie, więc występuje niewielkie opóźnienie, ale niewiele.
(Zamierzam wyjaśnić, jak by to zrobić, a potem nigdy więcej o tym nie rozmawiać, ponieważ jest to okropny pomysł i zawiedzie.) Utwórz skrypt, który najpierw porówna dane na wszystkich czterech serwerach, a następnie skopiuje dane różnicowe. Będziesz musiał udostępnić każdy katalog jednemu serwerowi, na którym działa skrypt, zezwolić na konfigurację, aby serwer mógł czytać i pisać, a następnie rozwiązywać problemy, rozwiązywać problemy.
Każda z powyższych opcji wykona pracę, jeśli twoja praca zależy od tej pracy, polecam trzymać się z dala od opcji 3.
Biorąc to pod uwagę, a nie próbujesz wydawać żadnych pieniędzy, wykonaj poniższe czynności.
spójrz na program o nazwie „bezpłatna synchronizacja plików”. Istnieje kilka naprawdę dobrych funkcji w darmowej wersji. Wierzę, że jest płatna za wersję, ale nie jestem pewien, jakie ulepszenia otrzymujesz. Używałem tego w wielu moich środowiskach programistycznych, gdy próbowałem osiągnąć coś podobnego do tego, co chcesz zrobić, i miałem leniwość przy konfigurowaniu DFS.
Ustaw tylko jeden serwer do zapisu, można to łatwo zrobić, konfigurując identyfikator URI na każdym serwerze, który mówi, że jeśli utworzysz artykuł, przejdź do ServerA, lub przepisujesz adres URL w pliku web.config, lub że WordPress to php:
nagłówek („Lokalizacja: http://myhost.com/mypage.php ”);
Każdy wymaga trochę kodowania i znajomości PHP, IIS.
Krótka odpowiedź, której nie możesz, no cóż, to nie do końca prawda. Miałem kiedyś klienta, który był nieugięty, aby nie używać modułu równoważenia obciążenia, który był w stanie przeprowadzić serię skryptów PowerShell, aby przenieść połączenie z jednego serwera na inny na podstawie ilości procesy robocze na każdym pudełku lub coś takiego. Tak czy inaczej bardzo trudne do zrobienia i nie warte czasu i energii.
Sprawdź, czy nie możesz skonfigurować równoważenia obciążenia sieciowego na serwerach, będzie to wymagało dodatkowego adresu IP, ale będzie to tylko jedna zmiana DNS, a ruch może zostać rozdzielony na odczyt na 3 serwerach.
Powodzenia!
źródło
Dzięki za wszystkie sugestie ludzi.
Nasze rozwiązanie wykorzystywało podejście synchronizacji peer-to-peer za pomocą narzędzia o nazwie resilio.
Resilio pozwoliło nam skonfigurować wiele komputerów (w tym przypadku interfejsów IIS) w klastrze synchronizacji peer-to-peer. Folder jest wybierany z każdego komputera w klastrze, który ma być używany w procesie synchronizacji.
Usługa resilio (usługa systemu Windows działająca w tle) monitoruje te foldery pod kątem wszelkich zmian, a jeśli zmiany zostaną wprowadzone w którymkolwiek z określonych folderów na odpowiednich interfejsach, resilio prześle tę zmianę na inne serwery.
Mam nadzieję, że może to pomóc innym w obliczu podobnego problemu w przyszłości.
źródło
Nie sądzę, aby zaplanowane zadania i Robocopy były świetnym podejściem. Ze względu na 5-minutowe okno będą chwile, w których zasób zostanie zażądany, ale serwer wybrany przez moduł równoważenia obciążenia nie będzie go miał dostępny. W przypadku witryn w dużej mierze statycznych zdarza się to znacznie rzadziej niż w przypadku często zmienianych zajętych witryn. Wyższa częstotliwość lub użycie innej technologii synchronizacji, takiej jak Bittorrent Sync (teraz nazywana Resilio Sync ), poprawiłoby to nieco, ale nie wyeliminowało problemu.
Lepszym rozwiązaniem byłoby umieszczenie zawartości wp-content lub po prostu folderu wp-content / uploads na dysku współdzielonym. Innym sposobem spojrzenia na to byłoby posiadanie jednego z serwerów hostujących ten folder i udostępnianie go innym. Przy buforowaniu dysku obciążenie na serwerze nie powinno być o wiele wyższe niż na innych serwerach.
Aktualizacja
Zapoznaj się z tym artykułem, aby znaleźć pomysły na buforowanie stron, a ten z CDN. Chodzi o Nginx, więc musisz to wypracować dla IIS, ale teoria ta jest poprawna dla każdego serwera WWW.
źródło