Konfiguracja farmy serwerów frontend AMODIT
Komunikacja w farmie serwerów
Jeżeli AMODIT jest zainstalowany na więcej niż jednym serwerze IIS lub witrynie, to zmiana wprowadzona na jednym serwerze, np. w procedurze, regule czy danych użytkownika, nie będzie widoczna na innych serwerach do czasu wygaśnięcia cache na tych serwerach albo do resetu puli aplikacji.
Podobna zasada dotyczy działania mechanizmu SignalR. Komunikat wysyłany z jednego serwera nie będzie docierał do użytkowników przypisanych do innego serwera.
AMODIT ma wbudowane mechanizmy komunikacji pomiędzy serwerami w farmie, ale wymagają one skonfigurowania.
Poniżej przykład farmy serwerów
- Dwa serwery aplikacyjne pracujące jako farma serwerów – amoditap1, amoditap2;
- Na każdym serwerze dwie instancje AMODIT:
- dla zwykłych użytkowników – amoditap1v, amoditap2v;
- dla administratorów – amoditap1vadm, amoditap2vadm;
- Odrębny serwer z bazą danych, z którego jednocześnie korzystają serwery aplikacyjne – amoditdb.
Konfiguracja
Zmiany w pliku web.config aplikacji webowych (witryn)
W każdej witrynie w pliku web.config należy wprowadzić odpowiednie, unikalne wartości dla klucza WebSiteName. Najlepiej będzie, gdy nazwa jest jakoś powiązana z nazwą serwera. Wprowadzoną nazwę należy wprowadzić w parametrze „name” w JSON opisanym w następnym rozdziale poniżej. To jest potrzebne po to, aby „siebie” nie synchronizować. Przykład dla serwera amoditap1v:
<add key="WebSiteName" value="amoditap1v"/>
Parametr systemowy LoadBalancedServers
W ustawieniach systemowych AMODIT należy wprowadzić wpis w formacie JSON do parametru LoadBalancedSevers ([5] na poniższym obrazku).
Przykładowy JSON z tabelą zawierającą listę serwerów dla przykładowej farmy serwerów:
[ {name: "amoditap1v", url: "http://amoditap1v:81"}, {name: "amoditap1vadm", url: "http://amoditap1v:82"}, {name: "amoditap2v", url: " http://amoditap2v:81"}, {name: "amoditap2vadm", url: " http://amoditap2v:82"}]
UWAGA! W tym przykładowym środowisku, na każdym z serwerów są 2 witryny – normalna (port 81) i do dostępu administracyjnego (port 82). Te witryny muszą mieć oddzielne wpisy.
Dostęp
Komunikacja jest poprzez endpoint api/server – powinien on być dostępny anonimowo albo do witryny musi mieć dostęp konto puli aplikacji <location path=”api/server”>.