Jak skonfigurować zwrotne proxy (krok po kroku dla Nginx i Apache)

Opublikowany: 2020-08-14

Odwrotny serwer proxy znajduje się przed serwerem sieci Web i odbiera wszystkie żądania, zanim dotrą do serwera pochodzenia. Działa podobnie do przekazywania proxy, z wyjątkiem tego, że w tym przypadku jest to serwer sieciowy używający proxy, a nie użytkownik lub klient. Odwrotne serwery proxy są zwykle używane w celu zwiększenia wydajności, bezpieczeństwa i niezawodności serwera WWW.

Na przykład, możesz mieć witrynę inną niż WordPress hostowaną w domenie example.com na serwerze A, a jej blog uruchomić w systemie WordPress pod adresem URL example.com/blog hostowanym na serwerze B. Możesz to osiągnąć, dodając odwrotny serwer proxy dla serwer hostujący Twoją witrynę główną. Możesz skonfigurować zwrotny serwer proxy, aby przekierowywał żądania do bloga na inny serwer (np. zarządzany host WordPress, taki jak Kinsta).

W tym artykule dowiesz się podstaw serwerów odwrotnego proxy, sposobu ich działania, ich głównych zalet i sposobu ich wykorzystania do przyspieszenia i zabezpieczenia witryny WordPress.

Podekscytowany? Zaczynajmy!

Co to jest odwrotny serwer proxy?

Aby zrozumieć, czym jest odwrotny serwer proxy, musisz najpierw poznać jego rolę i zapoznać się ze wszystkimi powiązanymi z nim terminami.

Kiedy normalnie przeglądasz sieć, wpisując nazwę domeny lub klikając łącze, Twoja przeglądarka/urządzenie łączy się bezpośrednio z serwerem witryny i zaczyna pobierać jej zasoby.

Infografika pokazująca, jak zwykle przegląda się internet
Jak zwykle działa przeglądanie w Internecie

Jeśli chcesz anonimizować swój adres IP z odwiedzanych witryn, możesz najpierw użyć serwera proxy, aby najpierw wysłać do niego wszystkie żądania. Przekaże Twoje żądania do programu rozpoznawania nazw DNS, a następnie pobierze zasoby witryny z serwera źródłowego.

Następnie przekaże te zasoby na Twoje urządzenie. Nazywa się to przekazywaniem proxy.

Infografika pokazująca, jak działa forward proxy
Jak działa forwardowy serwer proxy

Jesteś całkowicie ukryty przed witryną, ponieważ myśli, że Twoje żądanie pochodzi z przekazywania proxy.

Oprócz zwiększania prywatności użytkowników, forward proxy służy głównie do omijania ograniczeń treści geograficznych. Na przykład, jeśli chcesz obejrzeć film, który jest zablokowany w Twoim regionie, możesz użyć przekazywania proxy z adresem IP, pod którym film jest dostępny do oglądania.

Przekierowujący serwer proxy działa prawie tak samo jak wirtualna sieć prywatna (VPN), ale są to odrębne technologie z unikalnymi przypadkami użycia (choć czasami mogą się nakładać).

Reverse Proxy Server vs Forward Proxy Server

Odwrotny serwer proxy działa jako front dla serwera pochodzenia, aby zachować anonimowość i zwiększyć bezpieczeństwo, podobnie jak użytkownik/klient może użyć przekazywania proxy, aby osiągnąć to samo. Zapewnia to, że żaden użytkownik ani klient nie komunikuje się bezpośrednio z serwerem pochodzenia.

Infografika pokazująca, jak działa odwrotny serwer proxy
Jak działa odwrotny serwer proxy

Różnica między serwerem proxy przekazującym a serwerem zwrotnym jest niewielka, ale działają one inaczej.

Oba mogą ze sobą współpracować, ponieważ ich funkcjonowanie nie nakłada się na siebie. Zazwyczaj użytkownicy/klienci używają przekazywania proxy, podczas gdy serwery pochodzenia używają zwrotnego serwera proxy.

Infografika przedstawiająca różnice między przekazującym proxy a odwrotnym proxy
Forward Proxy vs Reverse Proxy

Ponieważ administrator serwera może kontrolować działanie zwrotnego serwera proxy, możesz go użyć do włączenia wielu przydatnych funkcji.

W dalszej części tego wpisu wymienimy wszystkie jego zalety.

Dlaczego warto korzystać z odwrotnego serwera proxy?

Wiele firm, zwłaszcza dużych, korzysta z witryn internetowych dostosowanych do ich indywidualnych potrzeb, które nie działają w systemie WordPress. Niektóre przykłady obejmują strony internetowe banków i ubezpieczeń.

W innych przypadkach firma może hostować swoją witrynę w usłudze zewnętrznej, która nie pozwala na instalowanie żadnego oprogramowania zewnętrznego (np. WordPress). Zazwyczaj są to małe i średnie sklepy, korzystające z platformy e-commerce, takiej jak Shopify.

Ponieważ WordPress ma solidne funkcje CMS, wiele firm, w tym duże przedsiębiorstwa z dostosowanymi witrynami, może preferować hostowanie swoich blogów za pomocą WordPress.

Jednym ze sposobów obejścia tego problemu jest zainstalowanie WordPressa w subdomenie głównej witryny i ułożenie menu nawigacyjnego w taki sposób, aby użytkownicy mogli łatwo przełączać się między główną witryną a blogiem.

Ponieważ subdomeny zachowują się jak unikatowe domeny, może to wpłynąć na SEO Twojej witryny. Mimo że Google traktuje zarówno subdomeny, jak i podkatalogi jednakowo, optymalizacja witryny pod kątem rankingu wyszukiwarek wymaga więcej wysiłku, jeśli jest hostowana w subdomenie, niż jeśli jest hostowana w podkatalogu.

Dwa podejścia do hostowania alternatywnej strony internetowej pod tą samą nazwą domeny
Dwa podejścia do hostingu blogów na stronie internetowej

Google potwierdziło, że traktuje zarówno subdomeny, jak i podkatalogi jednakowo, ale niektórzy eksperci SEO nie zgadzają się z tym. I nawet jeśli nie wpływa to na SEO witryny, witryna hostowana w podkatalogu jest po prostu łatwiejsza w utrzymaniu.

Dlatego możesz użyć zwrotnego serwera proxy, aby przekierować żądania do bloga witryny hostowanego na osobnym serwerze. Na przykład bank może bezpiecznie hostować swoją główną witrynę internetową na swoich serwerach, ale może również hostować swój blog oparty na WordPressie osobno na zarządzanym hoście WordPress, takim jak Kinsta.

Przykład zastosowania odwrotnego serwera proxy
Przykład zastosowania odwrotnego proxy

Ujednolicenie dwóch różnych witryn pod jedną nazwą domeny jest jedną z kluczowych zalet korzystania z zwrotnego serwera proxy. Pomaga markom utrzymać porządek, profesjonalizm i wiarygodność ich witryn.

Dowiedz się, w jaki sposób odwrotny serwer proxy może poprawić ️ wydajność, bezpieczeństwo i niezawodność... wszystko w tym przewodniku ️ Kliknij, aby tweetować

Korzyści z używania odwrotnego proxy

Oprócz powyższego przypadku użycia odwrotne serwery proxy zapewniają również wiele innych korzyści. W poniższej sekcji omówiono niektóre z ich głównych zalet.

Równoważenie obciążenia

Pojedynczy serwer pochodzenia nie może obsłużyć całego ruchu przychodzącego do witryny internetowej z milionami unikalnych użytkowników dziennie. W takich przypadkach można inteligentnie rozdzielić ruch na pulę wielu serwerów. Zwykle wszystkie serwery obsługują tę samą zawartość, aby wyeliminować pojedynczy punkt awarii, dzięki czemu witryna jest bardziej niezawodna.

Zwrotny serwer proxy to świetny sposób na skonfigurowanie tego, ponieważ może odbierać ruch przychodzący, zanim dotrze do serwera pochodzenia. Jeśli serwer pochodzenia jest przeciążony lub całkowicie ulegnie awarii, może dystrybuować ruch na inne serwery bez wpływu na funkcjonalność witryny.

Odwrotne serwery proxy mogą również kierować przychodzące żądania do kilku serwerów, przy czym każdy serwer wykonuje określoną funkcję, dla której jest zoptymalizowany. Odwrotny serwer proxy może następnie zbierać odpowiedzi ze wszystkich serwerów i dostarczać je klientowi.

Ponieważ używamy większości popularnych zwrotnych serwerów proxy głównie do równoważenia obciążenia, są one również określane jako Load Balancers .

Globalne równoważenie obciążenia serwerów (GSLB)

GSLB to zaawansowana metoda równoważenia obciążenia służąca do dystrybucji ruchu w witrynie na wiele serwerów rozmieszczonych strategicznie na całym świecie. Zwykle odbywa się to za pomocą techniki routingu anycast, w której odwrotny serwer proxy wybiera węzeł serwera na podstawie najkrótszego czasu podróży między klientem a serwerem.

GSLB nie tylko znacznie zwiększa niezawodność i bezpieczeństwo witryny, ale także zmniejsza opóźnienia i czasy ładowania, zwiększając w ten sposób komfort użytkowania. Możesz użyć GSLB z innymi technikami optymalizacji sieci, takimi jak Spoon Feeding, aby jeszcze bardziej uwolnić zasoby obliczeniowe serwerów źródłowych.

Chociaż możesz ręcznie skonfigurować globalne równoważenie obciążenia serwera na swoim serwerze, zwykle zajmują się nim dedykowane sieci CDN, takie jak Cloudflare i KeyCDN (które również zasilają Kinsta CDN). Kinsta obsługuje wszystkie hostowane strony internetowe za pośrednictwem Load Balancer obsługiwanego przez Google Cloud Platform.

Rozszerzona ochrona

Odwrotne serwery proxy mogą maskować adres IP i inne cechy serwerów pochodzenia. W ten sposób serwer pochodzenia Twojej witryny może lepiej zachować anonimowość, znacznie zwiększając jej bezpieczeństwo.

Ponieważ zwrotny serwer proxy odbierze cały ruch, zanim dotrze do głównego serwera, atakującym lub hakerom będzie trudniej zaatakować Twoją witrynę za pomocą zagrożeń bezpieczeństwa, takich jak ataki DDoS.

Możesz użyć ścisłej zapory sieciowej, aby wzmocnić odwrotny serwer proxy z silniejszym zabezpieczeniem przed typowymi cyberatakami. Bez zainstalowanego zwrotnego serwera proxy trudno jest usunąć złośliwe oprogramowanie lub rozpocząć usuwanie.

Odwrotny serwer proxy, taki jak HAProxy, może dodać podstawowe uwierzytelnianie dostępu HTTP do serwera WWW, na którym nie jest ono włączone. Możesz również użyć zwrotnego serwera proxy, aby dodać scentralizowane uwierzytelnianie dla różnych typów żądań.

Potężne buforowanie

Możesz użyć zwrotnego serwera proxy do celów przyspieszenia sieci Web, buforując zarówno zawartość statyczną, jak i dynamiczną. Może to zmniejszyć obciążenie serwera pochodzenia, powodując szybszą witrynę.

Na przykład, jeśli Twój serwer pochodzenia znajduje się w USA, a użytkownik z Europy odwiedza Twoją witrynę, możesz obsługiwać wersję witryny z pamięci podręcznej z odwrotnego serwera proxy w Europie. Ponieważ odwrotny serwer proxy znajduje się bliżej użytkownika niż serwer pochodzenia, załadowanie witryny zajmie mniej czasu, dzięki czemu będzie działać znakomicie.

Varnish i Nginx FastCGI to wybitne przykłady odwrotnych serwerów proxy używanych do buforowania treści internetowych. Jeśli Twoja witryna jest hostowana przez Kinsta, nie musisz się martwić o buforowanie, ponieważ Kinsta zajmuje się całą pracą związaną z buforowaniem.

Doskonała kompresja

Odpowiedzi serwera zużywają dużo przepustowości. Kompresowanie odpowiedzi serwera (np. za pomocą gzip) przed wysłaniem ich do klienta może zmniejszyć wymaganą przepustowość, przyspieszając odpowiedzi serwera w sieci.

Odwrotny serwer proxy jest idealny do kompresji odpowiedzi serwera, ponieważ znajduje się między serwerami pochodzenia a klientem.

Zoptymalizowane szyfrowanie SSL

Szyfrowanie i odszyfrowywanie żądań SSL/TLS dla każdego klienta może być bardzo obciążające dla serwera pochodzenia. Zwrotny serwer proxy może podjąć to zadanie, aby zwolnić zasoby serwera pochodzenia do innych ważnych zadań, takich jak udostępnianie zawartości.

Inną zaletą odciążenia szyfrowania i odszyfrowywania SSL/TSL jest zmniejszenie opóźnień dla klientów, którzy są geograficznie oddaleni od serwera pochodzenia.

Możesz również zdecydować się na zwrotny serwer proxy ze specjalistycznym sprzętem do akceleracji SSL/TLS, aby jeszcze bardziej zoptymalizować to zadanie. Takie odwrotne proxy nazywa się proxy zakańczania SSL/TLS. Niektóre serwery, takie jak Varnish, nie obsługują protokołów SSL/TSL, więc zwrotny serwer proxy SSL/TSL może pomóc w zabezpieczeniu ruchu przechodzącego przez nie.

Lepsze testy A/B

Większość narzędzi do testowania A/B wymaga użycia zewnętrznych bibliotek JavaScript w celu załadowania ich funkcji. Jednak wczytywanie skryptów innych firm może spowolnić czas ładowania strony i spowodować niestabilną pracę użytkowników.

Zamiast tego możesz użyć zwrotnego serwera proxy, aby utworzyć dwa oddzielne przepływy na samym poziomie serwera. Na przykład możesz użyć metody split_clients lub sticky route Nginx, aby kontrolować przekierowanie ruchu.

Możesz zapoznać się z samouczkami na temat Nginx i freeCodeCamp, aby dowiedzieć się więcej o wykonywaniu testów A/B z odwrotnym serwerem proxy.

Monitorowanie i rejestrowanie ruchu

Odwrotny serwer proxy przechwytuje wszystkie żądania, które przez niego przechodzą. Dzięki temu można ich używać jako centralnego koncentratora do monitorowania i rejestrowania ruchu. Nawet jeśli używasz wielu serwerów internetowych do hostowania wszystkich komponentów witryny, użycie zwrotnego serwera proxy ułatwi monitorowanie wszystkich danych przychodzących i wychodzących z witryny.

Najpopularniejsze odwrotne proxy

Według W3Techs, prawie 83% stron internetowych nie korzysta z monitorowanych usług odwrotnego proxy.

Statystyki odwrotnych serwerów proxy wykorzystywanych przez strony internetowe
Statystyki odwrotnych serwerów proxy używanych przez strony internetowe (Źródło: W3Techs.com)

Spośród 17% witryn korzystających z zwrotnego serwera proxy (wymienionych powyżej) zauważysz, że większość z nich to sieci CDN. Dzieje się tak, ponieważ większość odwrotnych serwerów proxy domyślnie ukrywa swoje istnienie jako środek ostrożności. Dlatego nie można polegać na usługach monitorowania witryn internetowych, takich jak W3Techs, aby dowiedzieć się, które odwrotne serwery proxy są najpopularniejsze.

Z naszych badań i doświadczenia wynika, że ​​najpopularniejsze obecnie używane odwrotne proxy to:

Nginx

Nginx to serwer WWW typu open source, który może również służyć jako zwrotny serwer proxy. Oprócz tego, że służy do hostowania witryn internetowych, jest to również jedno z najczęściej używanych rozwiązań odwrotnego proxy i równoważenia obciążenia. Według Netcraft w grudniu 2019 r. ponad 479 milionów serwerów internetowych korzystało z Nginx, co czyni go liderem pod względem udziału w rynku serwerów internetowych.

Udział w rynku serwerów internetowych wszystkich witryn według Netcraft
Udział w rynku serwerów internetowych wszystkich witryn (źródło: Netcraft)

Nginx zapewnia wszystkie korzyści odwrotnego proxy omówione powyżej, a także więcej. Poprawia wydajność sieci, bezpieczeństwo, niezawodność i skalowalność. Możesz skonfigurować Nginx za pomocą jego pliku konfiguracyjnego, który również można ponownie załadować na gorąco. W Kinsta odwrotny serwer proxy Nginx jest jednym z kilku dodatków premium, z których możesz korzystać.

Ale możesz również użyć Nginx Plus, oferty komercyjnej, aby uzyskać dostęp do opcji konfiguracji opartych na interfejsie API i innych funkcji odpowiednich dla dużych witryn internetowych.

Kinsta obsługuje wszystkie swoje witryny internetowe za pomocą Nginx. W każdej kategorii, w której brał udział, znalazł się w rankingu najwyższego poziomu hostingu Review Signal. Inne duże firmy korzystające z Nginx to MaxCDN, Cloudflare i Netflix.

Konfiguracja Nginx jako podstawowego zwrotnego serwera proxy jest prosta. Nginx zapewnia również różne dyrektywy umożliwiające dostosowanie zwrotnego serwera proxy serwera zgodnie z Twoimi wymaganiami. Omówimy, jak to zrobić w dalszej części. Jeśli jesteś klientem Kinsta, w tej samej sekcji dowiesz się również, jak korzystać z zwrotnego serwera proxy w witrynach obsługiwanych przez Kinsta.

Lakier

Varnish to odwrotny serwer proxy HTTP o otwartym kodzie źródłowym z wbudowanym silnikiem pamięci podręcznej. Jest przeznaczony głównie dla witryn o dużym natężeniu ruchu, które obsługują zawartość dynamiczną. Możesz również użyć Varnish jako modułu równoważenia obciążenia, zapory aplikacji internetowej (WAF) oraz serwera uwierzytelniania i autoryzacji brzegowej.

Działa na wszystkich nowoczesnych wersjach Linuksa i FreeBSD, będąc używanym głównie jako front dla serwerów WWW Nginx lub Apache. Potężny i bardzo elastyczny język konfiguracji Varnish (VCL) pozwala zdefiniować różne funkcje, takie jak obsługa żądań HTTP, buforowanie i łączenie z jednym lub większą liczbą serwerów WWW.

Z tego powodu wiele CDN używa Varnish jako głównej podstawy do szybkiego dostarczania treści.

Varnish obsługuje również Edge Side Includes (ESI), język, który pomaga ponownie wykorzystać sekcje jednej strony internetowej na innych stronach internetowych. Jeśli Twoja witryna zawiera wiele powtarzających się treści na różnych stronach, ESI może pomóc Ci przyspieszyć czas ładowania strony, buforując często używane sekcje.

Możesz rozszerzyć Varnish o różne moduły (VMOD). Przejdź do oficjalnego samouczka Varnish, aby dowiedzieć się, jak skonfigurować Varnish jako odwrotny serwer proxy dla WordPress.

Serwer ruchu Apache

Apache Traffic Server to serwer proxy do buforowania typu open source. Jest popularny ze względu na szybkie, skalowalne funkcje. Był to produkt komercyjny opracowany przez Yahoo! dawno temu, ale udostępnili go jako open source i przekazali fundacji Apache do konserwacji.

Kilka głównych sieci informacyjnych i sieci CDN, takich jak Comcast, Akamai, LinkedIn, Yahoo i Apple, używa Apache Traffic Server do zasilania swojej technologii.

Możesz również użyć serwera Apache HTTP Server ( Apache httpd ), demona serwera HTTP, aby skonfigurować zwrotne proxy na swoim serwerze WWW. Oprócz działania jako podstawowy serwer internetowy, pomaga również udostępniać użytkownikom zawartość statyczną i dynamiczną. W dalszej części tego artykułu dowiesz się, jak skonfigurować Apache jako zwrotny serwer proxy.

HAProxy

HAProxy to odwrotny serwer proxy typu open source i system równoważenia obciążenia. Został zaprojektowany do integracji z większością istniejących architektur serwerów internetowych, w tym z dystrybucjami systemu Linux i platformami w chmurze. Podobnie jak Nginx, HAProxy wykorzystuje oparty na zdarzeniach model we/wy i obsługuje dzielenie żądań między wiele procesów roboczych.

W przypadku żądań HTTP HAProxy działa wyjątkowo dobrze nawet przy dużych obciążeniach. Niektóre z najbardziej ruchliwych witryn w Internecie, takich jak Airbnb, Reddit, Instagram, Stack Overflow, Tumblr, GitHub i Imgur, używają HAProxy do wydajnego dostarczania swoich witryn.

Omówienie sposobu implementacji HAProxy wykracza poza zakres tego artykułu, ale możesz zapoznać się z ich dokumentacją, aby zrozumieć, jak to działa.

Uwaga: Traefik i Envoy to dwie inne alternatywy typu open source dla HAProxy. Są to zarówno wysokowydajne zwrotne serwery proxy, jak i systemy równoważenia obciążenia z wieloma zaawansowanymi funkcjami.

Niektóre inne popularne zwrotne serwery proxy to AWS Elastic Load Balancer, GLBC, DigitalOcean Load Balancer i Google Cloud Load Balancer. Aby uzyskać wyczerpującą listę najczęściej używanych odwrotnych serwerów proxy i systemów równoważenia obciążenia, możesz sprawdzić Stackshare.io.

Reverse Proxy: przypadki użycia dla witryn WordPress

Istnieją głównie trzy przypadki użycia zwrotnego proxy dla witryn WordPress, w tym witryn hostowanych w Kinsta.

Wczytywanie strony głównej a strony pośredniczącej
Ładowanie „witryny głównej” a „witryny pośredniczącej”

W tym przykładzie użyjemy tylko Nginx, ponieważ jest to obecnie najpopularniejszy zwrotny serwer proxy używany w witrynach WordPress. Ale te same podstawowe zasady będą miały zastosowanie do innych odwrotnych proxy.

Odwrotne serwery proxy są często trudne do zainstalowania, skonfigurowania i obsługi. Z tego powodu Kinsta oferuje miesięczną subskrypcję o wartości 50 USD za każdy zwrotny serwer proxy, w przypadku którego potrzebujesz pomocy przy konfiguracji. Aby uzyskać więcej informacji, możesz skontaktować się z zespołem pomocy technicznej Kinsta.

1. Witryny główne i serwery proxy hostowane na tym samym serwerze

Jeśli zarówno witryna główna, jak i witryna pośrednicząca są hostowane na tym samym serwerze, witryna główna może działać w instalacji WordPress, podczas gdy witryna pośrednicząca jest zasilana przez oddzielną instalację WordPress.

Ponieważ będziesz mieć dostęp zarówno do witryn, jak i do ich współdzielonego serwera internetowego, możesz skonfigurować reguły zwrotnego serwera proxy dla witryny głównej, a następnie skonfigurować witrynę z serwerem proxy tak, aby była ładowana z zwrotnego serwera proxy.

Jeśli hostujesz obie te witryny w Kinsta, możesz skontaktować się z zespołem pomocy technicznej Kinsta i poprosić o skonfigurowanie dla Ciebie zwrotnego serwera proxy. Oto procedura, którą musisz wykonać:

  • Upewnij się, że zarówno witryna główna, jak i witryna proxy są hostowane w Kinsta. Jeśli tak nie jest, możesz przeprowadzić migrację obu witryn do środowiska Kinsta ręcznie lub przesyłając żądanie migracji.
  • Otwórz zgłoszenie do pomocy technicznej i przekaż zespołowi pomocy technicznej Kinsta jasny opis konfiguracji domeny. Skonfigurowanie zwrotnego serwera proxy zajmie mi około jednego dnia roboczego.
  • Kinsta skonfiguruje odpowiednie reguły odwrotnego serwera proxy w witrynie głównej i skonfiguruje witrynę z serwerem proxy do ładowania przez zwrotny serwer proxy.

Oto standardowe dyrektywy zwrotnego serwera proxy Nginx używane przez Kinsta do ładowania witryny podkatalogu przez zwrotny serwer proxy:

 location ^~ /subfolder/ { proxy_pass http://subfolder.domain.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }

W powyższym kodzie należy zastąpić symbol zastępczy /subfolder/ rzeczywistą nazwą podkatalogu (np. /blog/ , /shop/ ). Ponadto poddomena http://subfolder.domain.com powinna odpowiadać adresowi URL używanemu do wskazywania zwrotnego serwera proxy w kierunku witryny proxy.

Dyrektywa location zawiera symbole karetki i tyldy ( ^~ ), aby poinformować Nginx, że jeśli znajdzie zdefiniowany ciąg, powinien przestać szukać dalszych dopasowań i użyć wymienionych tutaj dyrektyw. Dowiedz się więcej o dyrektywach odwrotnego proxy Nginx w jego dokumentacji.
Następnie musisz skonfigurować witrynę proxy do ładowania przez zwrotny serwer proxy. Oto standardowe kroki, które wykonuje Kinsta, aby skonfigurować witrynę proxy:

  • Utwórz podkatalog w ścieżce, z której ładowana jest witryna proxy. Do tego podkatalogu przenoszone są wszystkie pliki strony proxy.
  • Zaktualizuj pliki konfiguracyjne serwera WWW, aby zdefiniować nowy podkatalog jako katalog główny witryny proxy. Ponadto należy dodać regułę przepisywania, aby usunąć podkatalog z identyfikatora URI żądania dla każdego żądania przychodzącego.
  • Zaktualizuj wszystkie adresy URL w bazie danych witryny proxy, aby były zgodne z aktywnymi adresami witryn (np. example.com/blog ).
  • Edytuj plik wp-config.php witryny proxy z definicją $_SERVER['HTTP_HOST'] , wskazując go na adres URL witryny głównej.
  • Jeśli używasz certyfikatu SSL, musisz zdefiniować ścisłe reguły w pliku wp-config.php , aby uniknąć pętli przekierowania.

Uwaga: witryna proxy nie może tworzyć adresów URL, które powielają ten sam podkatalog, w którym ładuje się witryna proxy. Na przykład witryna proxy pod adresem example.com/blog nie może utworzyć strony ani katalogu pod adresem example.com/blog/blog .

2. Tylko witryna proxy hostowana na Twoim serwerze

Jeśli masz dostęp tylko do witryny proxy i jej serwera WWW, musisz skontaktować się z administratorem serwera głównej witryny i poprosić go o skonfigurowanie dla Ciebie reguł odwrotnego proxy.

Potrzebujesz błyskawicznie szybkiego, bezpiecznego i przyjaznego dla programistów hostingu dla swoich witryn? Kinsta została stworzona z myślą o programistach WordPress i zapewnia mnóstwo narzędzi oraz potężny pulpit nawigacyjny. Sprawdź nasze plany

Aby to zrobić, musisz wykonać te same kroki, które opisano powyżej, z wyjątkiem tego, że musisz skonfigurować reguły na dwóch różnych serwerach.

Aby hostować witrynę proxy za pomocą Kinsta, dodaj do witryny domenę, która będzie wskazywać na odwrotny serwer proxy. Zazwyczaj do tego celu nadaje się subdomena (np blog.example.com ), aby załadować witrynę pośredniczącą przez łącze z podkatalogu (np. example.com/blog ).

Po skonfigurowaniu witryny proxy w Kinsta możesz skontaktować się z zespołem pomocy technicznej Kinsta, aby skonfigurować witrynę proxy do ładowania przez zwrotny serwer proxy. W tej chwili nasz zespół pomocy technicznej będzie wymagał prawdziwego adresu IP Twojego serwera, aby zakończyć proces konfiguracji w sposób, który poprawnie zlicza odwiedziny. Jeśli nie możesz zapewnić statycznego adresu IP z powodu dynamicznych ograniczeń adresu IP od niektórych dostawców (np. AWS CloudFront), Twój plan zostanie przekonwertowany na porównywalny plan oparty na przepustowości.

Wreszcie, skonfigurowanie zwrotnego serwera proxy na serwerze wykracza poza zakres obsługi Kinsta, ponieważ może się tym zająć tylko administrator serwera.

3. Tylko strona główna hostowana na twoim serwerze

Jeśli masz dostęp tylko do strony głównej i jej serwera WWW, powinieneś skonfigurować zwrotny serwer proxy i skonfigurować jego reguły, aby ładować serwer proxy z zewnętrznego hosta. Za instalowanie i konfigurowanie serwera proxy do ładowania przez zwrotny serwer proxy odpowiada administrator serwera pomocniczego.

Hostowanie głównej witryny w Kinsta zapewni Ci dostęp do zespołu wsparcia Kinsta. Możesz podnieść zgłoszenie do pomocy technicznej, aby dodać standardowe reguły zwrotnego serwera proxy wymienione wcześniej w tym artykule. W razie potrzeby możesz również dodać dowolne dodatkowe dostosowania do tych reguł.

W tym scenariuszu ponosisz pełną odpowiedzialność za skonfigurowanie witryny proxy w celu jej prawidłowego załadowania przez zwrotny serwer proxy.

Jak skonfigurować Nginx jako odwrotny serwer proxy

Jeśli Kinsta nie obsługuje Twojej witryny, a Ty zarządzasz swoimi serwerami, musisz samodzielnie skonfigurować zwrotny serwer proxy i skonfigurować go tak, aby wskazywał witrynę proxy.

W zależności od systemu operacyjnego serwera WWW możesz zainstalować Nginx w różny sposób. W przypadku dystrybucji Linuksa możesz używać różnych pakietów Nginx w zależności od wersji Twojej dystrybucji Linuksa.

W poniższym przykładzie zainstalowaliśmy witrynę główną pod nazwą domeny example.com , podczas gdy witryna proxy WordPress jest zainstalowana w poddomenie blog.domain.com . Oba są zasilane przez Apache na serwerze WWW działającym na Ubuntu 18.04. Zainstalujemy i skonfigurujemy Nginx jako zwrotne proxy na głównym serwerze.

Aby rozpocząć, uzyskaj dostęp do terminala serwera przez SSH. Następnie użyj polecenia apt-get aby zaktualizować listę pakietów swojej dystrybucji i zainstalować Nginx na swoim serwerze WWW.

 sudo apt update sudo apt install nginx

Następnie musisz skonfigurować Nginx do żądań proxy dla domen hostowanych na Apache. Aby to zrobić, utwórz nowy plik wirtualnego hosta. Tutaj używam edytora nano , aby dodać kod, ale możesz użyć dowolnego edytora kodu.

 sudo nano /etc/nginx/sites-available/example.com.conf

Następnie ustaw dyrektywy Nginx, aby przekazywały żądania do Apache, dodając następujące bloki server {...} i location :

 server { listen 80; server_name example.com www.example.com; index index.php; root /var/www/example.com/public # fallback for index.php location / { try_files $uri $uri/ /index.php?$query_string; }location /blog { proxy_pass http://blog.domain.com;proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; # Proxy headers proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; # Proxy timeouts proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; }

W powyższym kodzie definiuję link do podkatalogu example.com/blog , który będzie obsługiwany przez serwer Apache. Upewnij się, że w dyrektywie proxy_pass używasz publicznego adresu IP (lub adresu URL) witryny proxy. W moim przypadku moja witryna proxy jest hostowana w subdomenie blog.domain.com .

Uwaga: Przed wprowadzeniem jakichkolwiek zmian upewnij się, że witryna proxy jest zainstalowana i gotowa do obsługi.

Możesz dowiedzieć się więcej o wszystkich dyrektywach odwrotnego proxy używanych tutaj w szczegółowym indeksie dyrektyw Nginx.

Zapisz plik hosta wirtualnego. Następnie aktywuj nowego hosta wirtualnego, tworząc dowiązanie symboliczne do plików o nazwie example.com.conf w katalogach /etc/nginx/sites-available i /etc/nginx/sites-enabled .

 sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

Następnie przetestuj Nginx pod kątem błędów konfiguracji.

 sudo nginx -t

Jeśli nie ma błędów, przeładuj Nginx, aby wymusić zmiany.

 sudo systemctl reload nginx

Pomyślnie skonfigurowałeś Nginx do pracy jako zwrotny serwer proxy. Aby to potwierdzić, możesz użyć funkcji phpinfo(), aby sprawdzić zmienne PHP ładowane podczas odwiedzania witryny proxy.

Pod zmiennymi PHP SERVER_SOFTWARE i DOCUMENT_ROOT zobaczysz, że Apache obsługuje tę domenę na zapleczu. Ale HTTP_X_REAL_IP i HTTP_X_FORWARDED_FOR PHP potwierdzają, że Nginx był używany jako odwrotny serwer proxy do przekazywania żądań.

Możesz przyspieszyć udostępnianie swojej witryny WordPress przez Nginx, korzystając z modułów fastcgi_cache i ngx_cache_purge. Podczas gdy pierwszy moduł będzie buforował twoją witrynę, drugi moduł automatycznie wyczyści pamięć podręczną na podstawie określonych zdarzeń (np. publikowania lub edytowania posta/strony WordPress).

Możesz użyć wtyczki Nginx Cache Controller WordPress, aby kontrolować pamięć podręczną serwera proxy Nginx bezpośrednio z pulpitu administratora WordPress. Jeśli korzystasz z instalacji WordPress Multisite, możesz użyć wtyczki Nginx Helper, aby zrobić to samo.

Zapoznaj się z główną dokumentacją Nginx i przewodnikiem konfiguracji Nginx WordPress, aby uzyskać szczegółowe informacje na temat pracy z Nginx i WordPress.

Jak skonfigurować Apache jako odwrotny serwer proxy

Zanim zaczniesz, upewnij się, że masz uruchomione dwie witryny: example.com i blog.domain.com . Pierwsza witryna może, ale nie musi, być witryną WordPress, ale druga powinna być witryną WordPress, ponieważ służy głównie do ładowania bloga domeny głównej pod adresem podkatalogu example.com/blog .

Rozpocznij konfigurowanie Apache, otwierając terminal serwera przez SSH i włączając moduł proxy Apache.

 sudo a2enmod proxy proxy_http ssl

Uruchomienie powyższego polecenia najprawdopodobniej spowoduje ponowne uruchomienie Apache w celu ponownego załadowania nowo zdefiniowanych dyrektyw.

Następnie edytuj plik wirtualnych hostów serwera głównego, aby utworzyć zwrotny serwer proxy. Oto kod, który musisz dodać:

 <VirtualHost *> DocumentRoot /var/www/app/public SSLProxyEngine On ProxyRequests off ProxyPass /blog http://blog.domain.com ProxyPassReverse /blog http://blog.domain.com </VirtualHost>

Dyrektywa ProxyPass utworzy zwrotny serwer proxy dla określonych ścieżek, podczas gdy dyrektywa ProxyPassReverse przechwyci nagłówki odpowiedzi HTTP wysyłane przez ten zwrotny serwer proxy i przepisze je tak, aby pasowały do ​​serwera Apache.

Po zapisaniu pliku musisz edytować plik wp-config.php , dodając następujący kod tuż przed wierszem z prośbą o zatrzymanie edycji.

 # ProxyPass Settings # overrides the variables below to ensure that any # request to /blog/* subdirectory is taken care of properly $_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI']; $_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME']; $_SERVER['PHP_SELF'] = '/blog' . $_SERVER['PHP_SELF'];

Na koniec musisz zaktualizować bazę danych swojej witryny WordPress, aby dodać wartości konfiguracyjne dla łącza podkatalogu /blog . Możesz to zrobić, uruchamiając następujące zapytanie SQL:

 UPDATE wp_options SET option_value = 'https://www.example.com/blog' WHERE option_name IN( 'siteurl', 'home' );

Teraz powinno być możliwe odwiedzenie adresu URL https://www.example.com/blog i ładowanie witryny WordPress pod http://blog.domain.com bez zmiany adresu URL. Możesz normalnie korzystać z WordPressa do przeglądania, pisania, edytowania i zarządzania swoją witryną.

Ograniczenia odwrotnego proxy

  • Odwrotny serwer proxy stanowi poważne zagrożenie dla bezpieczeństwa, ponieważ może odczytywać i zmieniać cały przepływający przez niego ruch. Jeśli przekazujesz ruch HTTPS przez zwrotny serwer proxy, musi on odszyfrować i ponownie zaszyfrować przesyłane dane. Oznacza to, że musi posiadać klucze prywatne certyfikatu SSL/TLS. Tak więc, jeśli jakakolwiek złośliwa strona może złamać twój zwrotny serwer proxy, może rejestrować hasła i wstrzykiwać złośliwe oprogramowanie do twoich stron internetowych.
  • Jeśli Ty lub Twoi użytkownicy nie macie bezpośredniego dostępu do głównego serwera, użycie zwrotnego serwera proxy może prowadzić do pojedynczego punktu awarii. Na przykład, jeśli używasz zwrotnego serwera proxy jako frontu do obsługi wielu domen, jego awaria może doprowadzić do jednoczesnego przejścia wszystkich domen w tryb offline.
  • Jeśli polegasz na odwrotnym serwerze proxy innej firmy (np. Cloudflare), przekazujesz im poufne informacje o swojej witrynie. Chociaż są zaufani, nie możesz przewidzieć, do czego może to doprowadzić.
  • Przywracanie kopii zapasowych lub przesyłanie witryn testowych na żywo w witrynach ładowanych przez odwrotny serwer proxy może spowodować, że witryna proxy przestanie się prawidłowo ładować.

Wybór między CDN a odwrotnym serwerem proxy

Sieci CDN to zaawansowana forma zwrotnego proxy, w której większość konfiguracji i konserwacji jest wykonywana przez stronę trzecią. Mogą zapewnić niesamowite korzyści w zakresie wydajności Twojej witrynie WordPress przy niewielkim wysiłku z Twojej strony.

Sieci CDN nie tylko buforują zawartość i szybko ją udostępniają użytkownikom, ale także zmniejszają obciążenie serwerów źródłowych, obniżają koszty przepustowości, zapewniają dodatkową warstwę bezpieczeństwa, poprawiają SEO witryny i pomagają lepiej skalować witrynę.

Zauważysz, że większość korzyści zapewnianych przez sieci CDN jest taka sama, jak te zapewniane przez zwrotne serwery proxy. Czy więc powinieneś wybrać CDN zamiast zwrotnego serwera proxy, czy odwrotnie?

Nie ma powodu, dla którego musisz zadowolić się tylko jednym. Jeśli masz już zainstalowany zwrotny serwer proxy, nadal będziesz widzieć wzrost szybkości i wydajności związany z korzystaniem z sieci CDN. Obie pamięci podręczne dobrze się układają, a jeśli masz jakieś unikalne potrzeby w zakresie obsługi żądań (np. zawartość dynamiczna, e-commerce), możesz je łatwo skonfigurować za pomocą niektórych niestandardowych nagłówków przekazywanych przez CDN lub odwrotny serwer proxy.

Chcesz dowiedzieć się więcej o odwróconych serwerach proxy? W tym artykule omówiono... jak działają, główne korzyści, jak możesz ich użyć, aby przyspieszyć i zabezpieczyć swoją witrynę WordPress. Kliknij, aby tweetować

Streszczenie

WordPress jest bardzo elastyczny. Możesz go używać jako bloga, witryny e-commerce, a nawet systemu zarządzania nauką. W większości przypadków możesz dostosować WordPress do swoich unikalnych wymagań.

Czasami jednak do hostowania dodatkowej witryny może być konieczne użycie oddzielnej domeny lub serwera pomocniczego. Jak wspomniano wcześniej, może to wynikać z używania różnych stosów technologii w przypadku dużej witryny korporacyjnej lub uruchomienia bloga WordPress dla istniejącej witryny innej niż WordPress.

A reverse proxy can help in both these cases, helping you get the most out of WordPress without giving up the main website and starting over.