Co to jest CDN i dlaczego firmy z niego korzystają?
Agencja internetowa » Wiadomości cyfrowe » Co to jest zwrotny serwer proxy i jak działa?

Co to jest zwrotny serwer proxy i jak działa?

Odwrotne serwery proxy to przydatne narzędzie w przyborniku każdego administratora systemu. Mają wiele zastosowań, w tym równoważenie obciążenia, ochronę przed atakami DDOS

Co to są odwrotne proxy?

Standardowy serwer proxy, zwany Forward Proxy, to serwer, przez który przekierowywane jest połączenie użytkownika. Pod wieloma względami przypomina prostą sieć VPN, która znajduje się przed połączeniem internetowym. Sieci VPN są częstym przykładem, ale obejmują także szkolne zapory ogniowe, które mogą blokować dostęp do niektórych treści.

Odwrotny serwer proxy działa nieco inaczej. Jest to narzędzie backendowe używane przez administratorów systemu. Zamiast łączyć się bezpośrednio z witryną obsługującą zawartość, zwrotny serwer proxy, taki jak NGINX, może znajdować się pośrodku. Gdy otrzymuje żądanie od użytkownika, przekazuje je lub „proxy” to żądanie do serwera końcowego. Ten serwer jest nazywany „serwerem początkowym”, ponieważ to on faktycznie odpowiada na żądania.

Podczas gdy użytkownik prawdopodobnie będzie wiedział, czy jest kierowany przez serwer proxy przekazujący, taki jak VPN lub zapora, odwrotne serwery proxy są podstawowymi narzędziami. O ile użytkownik wie, po prostu loguje się na stronie internetowej. Wszystko za odwróconym proxy jest ukryte, co również ma wiele zalet.

Ten efekt występuje również w przeciwnym kierunku. Serwer pochodzenia nie ma bezpośredniego połączenia z użytkownikiem i zobaczy tylko kilka żądań z adresu IP zwrotnego serwera proxy. Może to stanowić problem, ale większość usług proxy, takich jak NGINX, dodaje nagłówki, takie jak X-Forwarded-For na żądanie. Te nagłówki informują serwer pochodzenia o rzeczywistym adresie IP klienta.

Do czego służą odwrotne proxy?

Odwrotne serwery proxy mają dość prostą koncepcję, ale okazują się zaskakująco przydatnym narzędziem z wieloma nieoczekiwanymi przypadkami użycia.

Równoważenie obciążenia

Jedną z głównych zalet reverse proxy jest jego lekkość. Ponieważ tylko przesyłają żądania, nie muszą wykonywać mnóstwa przetwarzania, szczególnie w sytuacjach, w których konieczne jest wykonanie zapytań do bazy danych.

Oznacza to, że wąskim gardłem jest często serwer pochodzenia, ale z odwrotnym serwerem proxy z przodu możesz łatwo mieć wiele serwerów pochodzenia. Na przykład proxy może wysyłać 50% żądań do jednego serwera i 50% do drugiego, podwajając pojemność witryny. Usługi takie jak HAProxy zostały zaprojektowane, aby dobrze sobie z tym poradzić.

Jest to bardzo powszechny przypadek użycia, a większość dostawców usług w chmurze, takich jak Amazon Web Services (AWS), oferuje równoważenie obciążenia jako usługę, więc nie musisz go konfigurować samodzielnie. Dzięki automatyzacji w chmurze możesz nawet automatycznie zwiększyć liczbę serwerów pochodzenia w odpowiedzi na ruch, dzięki funkcji zwanej autoskalowaniem.

Systemy równoważenia obciążenia, takie jak elastyczny moduł równoważenia obciążenia AWS, można skonfigurować tak, aby automatycznie rekonfigurowały się w miarę wzrostu i awarii serwerów źródłowych, a wszystko to jest możliwe dzięki zwrotnemu serwerowi proxy pod maską.

buforowanie

Ponieważ zwrotny serwer proxy często odpowiada znacznie szybciej niż serwer pochodzenia, powszechnie stosowana jest technika zwana buforowaniem w celu przyspieszenia żądań na wspólnych trasach. Buforowanie występuje, gdy dane strony są przechowywane na zwrotnym serwerze proxy i są żądane od serwera pochodzenia tylko raz na kilka sekund/minut. To znacznie zmniejsza nacisk na serwer pochodzenia.

Na przykład artykuł, który właśnie czytasz, był obsługiwany przez WordPress, który musi komunikować się z bazą danych SQL, aby pobrać treść i metadane artykułu. Robienie tego przy każdym odświeżeniu strony jest marnotrawstwem, ponieważ strona tak naprawdę się nie zmienia. Tak więc ta trasa może być buforowana, a odwrotny serwer proxy po prostu wyśle ​​ostatnią odpowiedź z powrotem do następnego użytkownika, zamiast ponownie zajmować się WordPressem.

Dedykowana sieć odwrotnych serwerów proxy, które przechowują zawartość w pamięci podręcznej, nazywana jest siecią dostarczania zawartości lub CDN. Sieci CDN, takie jak CloudFlare lub Fastly, są bardzo często używane przez duże witryny internetowe w celu przyspieszenia globalnego dostarczania. Serwery na całym świecie, które przechowują zawartość pamięci podręcznej, nazywane są „węzłami brzegowymi”, a posiadanie ich wielu może sprawić, że Twoja witryna będzie bardzo przyciągająca wzrok.

Ochrona sieci i prywatność

Ponieważ użytkownik nie wie, co kryje się za zwrotnym serwerem proxy, nie może łatwo zaatakować bezpośrednio Twoich serwerów pochodzenia. W rzeczywistości odwrotne serwery proxy są powszechnie używane z serwerami pochodzenia w prywatnych podsieciach, co oznacza, że ​​nie mają połączenia przychodzącego z zewnętrznym Internetem.

Dzięki temu konfiguracja sieci pozostaje prywatna, a bezpieczeństwo dzięki ukryciu nigdy nie jest niezawodne, ale jest to lepsze niż pozostawienie jej otwartej na atak.

To nieodłączne zaufanie może być również przydatne podczas planowania sieci. Na przykład serwer API, który komunikuje się z bazą danych, jest podobny do zwrotnego serwera proxy. Baza danych wie, że może ufać serwerowi API w prywatnej podsieci, a serwer API działa jako zapora dla bazy danych, zezwalając przez to tylko na dobre połączenia.

Konfigurowalny interfejs

Jedną z zalet odwrotnych serwerów proxy, takich jak NGINX, jest ich stopień konfiguracji. Często warto mieć je przed innymi usługami, aby skonfigurować sposób, w jaki użytkownicy uzyskują dostęp do tych usług.

Na przykład NGINX jest w stanie ograniczyć żądania do określonych tras, co może uniemożliwić nadużyciom wysyłanie tysięcy żądań do serwerów pochodzenia z jednego adresu IP. Nie powstrzymuje ataków DDOS, ale fajnie jest mieć.

NGINX może również przekazywać ruch z wielu nazw domen z konfigurowalnymi blokami „serwerowymi”. Na przykład może wysyłać żądania do example.com na serwer pochodzenia, ale wyślij api.example.com na Twój specjalny serwer API lub files.example.com do magazynu plików i tak dalej. Każdy serwer może mieć własną konfigurację i własne reguły.

NGINX może również dodawać dodatkowe funkcje do istniejących serwerów pochodzenia, takie jak scentralizowane certyfikaty HTTPS i konfiguracja nagłówków.

Czasami warto mieć NGINX na tym samym komputerze, co inna usługa lokalna, tylko po to, aby obsługiwać zawartość tej usługi. Na przykład interfejsy API sieci Web ASP.NET używają wewnętrznego serwera sieci Web o nazwie Kestrel, który dobrze reaguje na żądania, ale niewiele więcej. Bardzo często uruchamia się Kestrel na porcie prywatnym i używa NGINX jako konfigurowalnego zwrotnego serwera proxy.

Scentralizowane rejestrowanie

Ten jest dość prosty, ale większość ruchu przechodzi przez jedną usługę, co ułatwia sprawdzenie dzienników. Dziennik dostępu NGINX zawiera wiele przydatnych informacji o ruchu i chociaż nie przewyższa funkcjonalności usługi takiej jak Google Analytics, jest to świetna informacja.

★ ★ ★ ★ ★