Mam wiele serwerów linuksowych podłączonych do modułu równoważenia obciążenia i lubię udostępniać zasoby (takie jak zdjęcia, filmy i inne rzeczy) między tymi serwerami. Jak najlepiej to zrobić?
Obecnie zamontowałem na serwerze plików wszystkie serwery WWW, ale martwię się, że spadnie on pod dużym natężeniem ruchu. Jak mogę tego uniknąć?
Z góry dziękuję.
linux
web-server
file-sharing
getmizanur
źródło
źródło
Odpowiedzi:
Istnieje wiele sposobów na zrobienie tego w zależności od potrzeb.
Pierwsze dwa są najlepsze, jeśli pojawi się wiele nowych plików. Trzeci byłby idealnym rozwiązaniem, jeśli nie dodajesz ani nie zmieniasz plików, ponieważ użytkownicy często otrzymają 404 na treści statyczne, które nie zostały jeszcze zsynchronizowane.
Ta ostatnia opcja może być idealna na wiele sposobów, ale może również okazać się najdroższą z 4. Aby ją wesprzeć, musisz również przepisać strony internetowe.
źródło
Innym doskonałym sposobem na zmniejszenie obciążenia serwerów WWW i równoważenie obciążenia jest użycie squid (a mianowicie squid3). Ustaw go jako odwrotne proxy z buforowaniem. Będzie buforować zawartość statyczną, taką jak zdjęcia itp. Na HDD (domyślnie) lub RAM (szybciej i najlepiej), jeśli ustawisz go w ten sposób. Jest w stanie zaokrąglić robota do innych serwerów kałamarnic, również w przypadku przeciążenia dowolnego konkretnego węzła.
źródło
Ponieważ zwykle potrzeba większej liczby serwerów wynika z zasobów potrzebnych do prowadzenia dynamicznych witryn / aps, rozważ hostowanie zasobów statycznych w innej subdomenie / domenie. (jak static.twojadomena.com)
Następnie możesz użyć innego serwera / serwerów, aby je hostować. Hosting plików statycznych nie zużywa bardzo dużo zasobów, więc potrzebujesz dużo mniej serwerów do przechowywania treści statycznych. Uwolnisz także niektóre zasoby na serwerach dotyczące zawartości dynamicznej.
W zależności od modułu równoważenia obciążenia możesz również zrobić to w tej samej domenie, gdy moduł równoważenia obciążenia decyduje, którego serwera użyć do którego żądania, ale jeśli używasz osobnej domeny, możesz łatwo umieścić swoje zasoby statyczne w sieci CDN, jeśli potrzeba powinna się pojawić!
źródło
Jednym z rozwiązań tego wyzwania, które zastosowałem, jest posiadanie głównej kopii plików do odczytu / zapisu na współużytkowanym dysku NFS, ale także trzymanie kopii tylko do odczytu na każdym serwerze WWW, aby awaria hosta NFS spowodowała dostęp do pliku w trybie tylko do odczytu, zamiast całkowicie je utracić.
rsync
działa co 15 minut, aby zachować kopię tylko do odczytu na każdym hoście.check_link
Skrypt bash uruchamia każdą minutę, aby upewnić się, że NFS jest nadal istnieje i jeśli nie zamienia dowiązania symbolicznego do odczytu tylko do skopiowania.Więcej szczegółów można znaleźć w tym artykule od pierwszego uruchomienia tego systemu.
Plusy:
Wady:
źródło
Możesz rozważyć bazę danych NoSQL. Są przeznaczone do pracy w klastrach, zapewniając ostateczną spójność. Ale uważaj, nie są to KWASY.
Oto wprowadzenie , które pomoże ci zdecydować, jakiego rodzaju bazy danych NoSQL możesz użyć do swoich celów.
Oto lista zasobów związanych z dostępnym NoSQL.
źródło
Dlaczego nie wypróbować rozwiązania DFS, zapewniają one wysoki poziom redundancji, a wolumin może być współdzielony przez dowolną liczbę osób. Gluster jest moim ulubionym i jest bardzo łatwy w instalacji i konfiguracji w dowolnej znanej dystrybucji Linuksa
źródło