Jak używać Apache jako odwrotnego proxy — przewodnik krok po kroku

Opublikowany: 2023-07-23

W tym przewodniku znajdziesz odpowiedź na pytanie Jak używać Apache jako odwrotnego proxy . Odwrotny serwer proxy to potężne narzędzie, które działa jako pośrednik między klientami a serwerami zaplecza, takimi jak serwery WWW lub serwery aplikacji. W przeciwieństwie do tradycyjnego serwera proxy do przekazywania, który znajduje się między klientami a Internetem, odwrotny serwer proxy znajduje się między klientami a jednym lub kilkoma serwerami.

Gdy klient wysyła żądanie, odwrotny serwer proxy przekazuje to żądanie do odpowiedniego serwera zaplecza w imieniu klienta. Następnie pobiera odpowiedź z serwera zaplecza i odsyła ją z powrotem do klienta. Ten proces skutecznie ukrywa tożsamość i wewnętrzną strukturę serwera zaplecza przed klientami.

Odwrotne serwery proxy oferują kilka korzyści, w tym zwiększone bezpieczeństwo poprzez ochronę serwerów zaplecza przed bezpośrednim kontaktem z Internetem, równoważenie obciążenia w celu dystrybucji żądań klientów na wiele serwerów oraz buforowanie w celu poprawy wydajności poprzez udostępnianie klientom treści z pamięci podręcznej.

Spis treści

Rozróżnianie między Forward Proxy i Reverse Proxy

  • Kierunek pełnomocnictwa:
    • Pełnomocnik przekazujący: Obsługuje żądania klientów dotyczące dostępu do zasobów w Internecie. Znajduje się między klientami a Internetem, przekazując żądania klientów do zewnętrznych serwerów.
    • Odwrotny serwer proxy: zarządza żądaniami klientów dotyczącymi dostępu do zasobów w sieci organizacji. Znajduje się między klientami a serwerami zaplecza, przekazując żądania klientów do odpowiedniego serwera zaplecza.
  • Perspektywa klienta:
    • Pełnomocnik przekazujący: Klienci zazwyczaj nie są świadomi istnienia przekazującego serwera proxy. Żądanie klienta jest wysyłane do serwera proxy, a serwer docelowy odbiera żądanie tak, jakby pochodziło bezpośrednio od klienta.
    • Odwrotne proxy: Klienci wysyłają żądania bezpośrednio do zwrotnego serwera proxy, a nie do serwerów zaplecza. Odwrotny serwer proxy następnie przekazuje żądania do serwerów zaplecza w imieniu klientów.
  • Przypadek użycia:
    • Forward Proxy: Często używany do filtrowania treści, kontroli dostępu i anonimizacji żądań klientów poprzez ukrywanie adresów IP klientów.
    • Odwrotny serwer proxy : używany głównie do równoważenia obciążenia, kończenia SSL, buforowania i zapewniania bezpiecznej bramy do usług zaplecza.
  • Perspektywa serwera:
    • Przekierowujący serwer proxy : serwer docelowy widzi żądanie pochodzące od przekazującego serwera proxy, a nie od pierwotnego klienta. Nie jest świadomy rzeczywistego klienta składającego żądanie.
    • Reverse Proxy: Serwery zaplecza widzą odwrotne proxy jako klienta wysyłającego żądanie. Nie są świadomi prawdziwych klientów składających pierwotne żądanie.
  • Implikacje bezpieczeństwa:
    • Forward Proxy: Zwiększa prywatność klientów poprzez maskowanie adresów IP klientów. Może również zapewniać dodatkowe warstwy bezpieczeństwa, filtrując złośliwą zawartość, zanim dotrze ona do klientów.
    • Reverse Proxy: Działa jako osłona dla serwerów zaplecza, ukrywając ich wewnętrzną strukturę przed zewnętrznymi klientami. Pomaga chronić przed bezpośrednim kontaktem z Internetem i potencjalnymi atakami.
  • Lokalizacja wdrożenia:
    • Forward Proxy: Wdrożony w sieci klienta lub na urządzeniu klienta w celu kontrolowania wychodzącego dostępu do Internetu.
    • Odwrotny serwer proxy: wdrożony na brzegu sieci organizacji, między Internetem a serwerami zaplecza, zarządzający przychodzącymi żądaniami klientów.

Badanie różnych przypadków użycia odwrotnych serwerów proxy

Odwrotne serwery proxy oferują szeroki zakres zastosowań, które zwiększają wydajność, bezpieczeństwo i skalowalność aplikacji i usług internetowych.

Niektóre z kluczowych przypadków użycia odwrotnych serwerów proxy obejmują

  • Równoważenie obciążenia: Odwrotne serwery proxy mogą dystrybuować przychodzące żądania klientów na wiele serwerów zaplecza. Pomaga to rozłożyć obciążenie, zapobiec przeciążeniu serwera i zapewnić lepsze wykorzystanie zasobów. Równoważenie obciążenia zwiększa ogólną wydajność i szybkość reakcji aplikacji.
  • Zakończenie SSL : Odwrotne serwery proxy mogą obsługiwać szyfrowanie i deszyfrowanie SSL/TLS w imieniu serwerów zaplecza. Odciąża to serwery zaplecza, które wymagają intensywnego przetwarzania SSL, zmniejszając ich obciążenie i upraszczając zarządzanie certyfikatami.
  • Buforowanie: odwrotne serwery proxy mogą przechowywać często żądane zasoby w pamięci podręcznej. Gdy klienci żądają tych samych zasobów, odwrotne proxy obsługuje bezpośrednio zawartość pamięci podręcznej, zmniejszając obciążenie serwera i skracając czas odpowiedzi.
  • Przyspieszenie sieci: Dzięki buforowaniu zawartości statycznej i kompresji danych odwrotne serwery proxy mogą przyspieszyć ładowanie stron internetowych dla klientów, co zapewnia płynniejsze korzystanie z nich.
  • Bezpieczeństwo i ochrona przed atakami DDoS: Odwrotne serwery proxy działają jako bariera ochronna między Internetem a serwerami zaplecza. Mogą filtrować i blokować złośliwy ruch, chronić przed atakami typu Distributed Denial of Service (DDoS) oraz ukrywać prawdziwy adres IP serwera zaplecza, aby zapobiec bezpośrednim atakom.
  • Zapora aplikacji sieci Web (WAF) : Odwrotne serwery proxy mogą działać jako WAF, sprawdzając ruch przychodzący pod kątem potencjalnych zagrożeń, takich jak iniekcja SQL, skrypty krzyżowe (XSS) i inne złośliwe działania. Pomagają chronić aplikacje internetowe przed typowymi lukami w zabezpieczeniach.
  • Pojedynczy punkt wejścia: Odwrotne serwery proxy zapewniają pojedynczy punkt wejścia dla klientów zewnętrznych w celu uzyskania dostępu do wielu serwerów zaplecza. Upraszcza to architekturę sieci i pozwala na łatwiejsze zarządzanie i skalowanie usług.
  • Konwersja protokołów: Odwrotne serwery proxy mogą tłumaczyć żądania z jednego protokołu na inny. Na przykład mogą konwertować żądania HTTP na WebSocket lub inne protokoły specyficzne dla aplikacji, ułatwiając komunikację między klientami a serwerami.
  • Kompresja i optymalizacja treści: Odwrotne serwery proxy mogą kompresować zawartość wychodzącą przed wysłaniem jej do klientów, zmniejszając rozmiar transferu danych i skracając czas ładowania strony.

Wymagania wstępne — skonfiguruj Apache jako odwrotny serwer proxy

Zainstaluj klienta Bitwise SSH

  1. Wyszukaj klienta Bitwise SSH w swojej przeglądarce. Kliknij link https://www.bitvise.com/ssh-client-download i rozpocznij instalację

2. Po zainstalowaniu instalatora otwórz plik .exe z komputera i dokończ instalację klienta Bitvise SSH.

Jak zalogować się do serwera SSH bitowo?

  1. Po zakończeniu instalacji pojawi się poniższe okno. Wprowadź hosta, port i nazwę użytkownika, wybierz hasło z listy rozwijanej Metoda początkowa, a następnie kliknij przycisk logowania. Pojawi się wyskakujące okienko, aby wprowadzić hasło. Wprowadź swoje hasło SSH.

2. Po zalogowaniu kliknij „Nowa konsola terminala”, a natychmiast pojawi się terminal.

Krok 1 - Zainstaluj Apache'a

Połącz serwer

Teraz, aby nawiązać połączenie z serwerem i odświeżyć lokalny indeks pakietów za pomocą repozytoriów APT, wprowadź poniższe polecenie w terminalu i naciśnij enter:

 trafna aktualizacja 

Aktualizacje zajmą trochę czasu, tymczasem poczekaj na ich zakończenie.

Jak zainstalować Apache na Ubuntu ?

  1. Zainstaluj Apache na Ubuntu

Teraz, aby zainstalować Apache z Ubuntu, wprowadź poniższe polecenie i naciśnij enter

 apt install -y apache2

2. Sprawdź wersję Apache

Po instalacji masz możliwość sprawdzenia wersji Apache za pomocą

 apache2 -version

3. Sprawdź status Apache

Masz również możliwość sprawdzenia statusu Apache2 za pomocą poniższego polecenia. Pomaga to szybko określić, czy serwer działa i czy występują jakieś problemy wymagające uwagi.

 systemctl status apache2

Jak zauważyłeś, stan (KONIEC) wyświetlany na ekranie jest wyraźnym wskazaniem udanej instalacji Apache2. Ten wynik potwierdza, że ​​proces instalacji został zakończony bez żadnych błędów lub problemów.

4. Włącz Apache'a

Aby włączyć Apache2 w Ubuntu, użyj polecenia:

 systemctl enabled apache2

5. Uruchom Apache'a

Jeśli chcesz zrestartować Apache2 w Ubuntu, użyj poniższego polecenia w terminalu:

 systemctl start apache2

Jak zainstalować Apache w Almalinux?

  1. Sprawdź dostępne aktualizacje

Aby zainstalować Apache2 w Almalinux, sprawdź dostępność aktualizacji, uruchamiając polecenie „ dnf check-update” .

 dnf check-update

W przypadku znalezienia aktualizacji przejdź do aktualizacji Linode za pomocą „aktualizacji dnf”. Dodatkowo, jeśli jakiekolwiek komponenty jądra zostaną zaktualizowane podczas procesu, pamiętaj o ponownym uruchomieniu Linode za pomocą „reboot” , aby zastosować zmiany.

  1. Zainstaluj Apache'a

Teraz kontynuuj instalację wymaganych pakietów Apache.

 dnf install httpd httpd-tools
  1. Uruchom Apache'a

Po zainstalowaniu Apache nie uruchamia się automatycznie. Aby go zainicjować i włączyć, użyj narzędzia systemctl .

 systemctl start httpd
  1. Włącz Apache'a

Aby upewnić się, że Apache uruchamia się automatycznie przy każdym ponownym uruchomieniu systemu , włącz tę opcję.

 systemctl enable httpd
  1. Sprawdź stan Apache

Sprawdź status Apache za pomocą polecenia „systemctl status” . Powinien być wyświetlany jako aktywny i uruchomiony.

 systemctl status httpd

Krok 2 — Włącz moduły Apache dla odwrotnego serwera proxy

Jak to włączyć na Ubuntu?

Aby skutecznie wykorzystać odwrotne proxy w Apache Web Server, należy włączyć określone moduły Apache, które są kluczowe dla obsługi dodatkowych funkcji wymaganych przez odwrotne serwery proxy.

  1. Zidentyfikuj wymagane moduły

mod_proxy : Służąc jako główny moduł proxy dla Apache, mod_proxy wydajnie obsługuje połączenia i przekierowania. Umożliwia Apache działanie jako brama do bazowych serwerów zaplecza, co czyni go niezbędnym modułem dla wszystkich konfiguracji odwrotnego proxy.

mod_proxy_http : Ten moduł opiera się na mod_proxy i jest niezbędny do obsługi żądań HTTP i HTTPS w środowisku serwera proxy. Umożliwia Apache sprawną obsługę proxy aplikacji internetowych przy użyciu protokołów HTTP/HTTPS .

mod_ssl: Zapewniając niezbędną funkcjonalność, mod_ssl wyposaża serwer Apache HTTP w obsługę protokołów SSL v3 i TLS v1.x. Moduł ten jest niezbędny do nawiązywania bezpiecznych, szyfrowanych połączeń, zapewniania integralności danych i zwiększania bezpieczeństwa serwera WWW.

2. Włącz moduły

Teraz aktywujemy te moduły za pomocą polecenia a2enmod :

 sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod ssl
  1. Uruchom ponownie serwer Apache2

Po włączeniu jakichkolwiek nowych modułów Apache konieczne jest, aby nie przeoczyć kluczowego kroku ponownego uruchomienia serwera Apache2 . Ten krok zapewnia, że ​​zmiany odniosą skutek i pozwala na pełną integrację nowo aktywowanych modułów z konfiguracją serwera Apache.

 sudo systemctl restart apache2
  1. Sprawdź moduły

Możesz potwierdzić aktywny status tych modułów, używając następującego polecenia:

 sudo apachectl -M

Krok 3 — Konfiguracja odwrotnego serwera proxy Apache

Teraz skonfiguruj odwrotne proxy Apache , aby akceptować żądania z Internetu i skutecznie przekazywać je do wybranego zasobu.

  1. Wyłącz domyślny Apache

Aby rozpocząć, wyłącz domyślny plik konfiguracyjny wirtualnego hosta Apache. Można to osiągnąć za pomocą następującego polecenia:

 a2dissite 000-default.conf
  1. Utwórz nowy plik konfiguracyjny

Utworzenie nowego pliku konfiguracyjnego hosta wirtualnego jest podstawowym krokiem w dostosowywaniu Apache do obsługi różnych aplikacji internetowych lub stron internetowych na tym samym serwerze. A wirtualny host umożliwia Apache zarządzanie wieloma domenami lub subdomenami, z których każda ma własną unikalną konfigurację i ustawienia.

Aby utworzyć nowy plik konfiguracyjny wirtualnego hosta, wykonaj następujące ogólne kroki:

Wybierz nazwę : Wybierz opisową nazwę pliku hosta wirtualnego, zazwyczaj kończącą się rozszerzeniem „.conf”. Na przykład „example.com.conf” lub „cyberpanel.conf”.

Przejdź do katalogu konfiguracyjnego Apache: W większości dystrybucji Linuksa pliki konfiguracyjne Apache są przechowywane w katalogu „/etc/apache2/sites-available/” . Na przykład:

 cd /etc/apache2/sites-available/

Utwórz plik wirtualnego hosta : Użyj edytora tekstu, takiego jak nano lub vi, aby utworzyć nowy plik konfiguracyjny. Na przykład:

 sudo nano example.com.conf

Po wprowadzeniu powyższego polecenia pojawi się poniższy plik:

Skonfiguruj hosta wirtualnego : w pliku użyj dyrektywy <VirtualHost> , aby zdefiniować adres IP i port do akceptowania żądań dla określonego hosta wirtualnego. Aby uzyskać podstawowy przykład, zezwalając na wszystkie adresy IP na domyślnym porcie HTTP (port 80) , użyj następującego:

 <VirtualHost *:80>    ServerName site1.com    ServerAlias www.site1.com     ServerAdmin [email protected]    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined    ProxyPass / http://127.0.0.1:8080/    ProxyPassReverse / http://127.0.0.1:8080/    ProxyRequests Off </VirtualHost>

Proces konfiguracji rozpoczynamy od zdefiniowania wirtualnego hosta za pomocą komendy <VirtualHost> , podania akceptowanego adresu IP oraz numeru portu dla Apache. W tym przypadku używany jest symbol wieloznaczny *, który umożliwia akceptację wszystkich adresów IP, podczas gdy numer portu jest ustawiony na 80 , reprezentujący domyślny port HTTP. Następnie konfiguracja obejmuje ponadto następujące elementy:

  • ServerName : Ta dyrektywa określa nazwę domeny powiązaną z serwerem.
  • ServerAlias: Za pomocą ServerAlias ​​możesz zdefiniować dodatkowe nazwy, które będą akceptowane przez serwer.
  • ServerAdmin : Dyrektywa ServerAdmin ustawia kontaktowy adres e-mail, który serwer umieszcza w komunikatach o błędach zwracanych klientom.
  • ErrorLog : ErrorLog ustawia nazwę pliku, w którym Apache przechowuje napotkane błędy.
  • CustomLog: CustomLog ustawia nazwę pliku, w którym Apache rejestruje żądania klientów na serwerze.
  • ProxyPass: ProxyPass odwzorowuje serwery zdalne na przestrzeń serwera lokalnego i określa docelowy adres przekierowania ruchu. Pozwala Apache działać jako odwrotne proxy, przekazując żądania do serwerów zaplecza oraz poprawiając wydajność aplikacji i dystrybucję obciążenia.
  • ProxyPassReverse: ProxyPassReverse jest niezbędny dla serwera proxy, ponieważ przepisuje pierwotną lokalizację, lokalizację zawartości i nagłówki odpowiedzi HTTP URI serwera zaplecza z informacjami serwera proxy. Zapewnia to, że odwrotny serwer proxy prawidłowo obsługuje odpowiedzi i zapobiega narażeniu serwerów zaplecza na bezpośredni dostęp do Internetu.
  • ProxyRequests: ProxyRequests zapobiegają używaniu serwera HTTP Apache jako serwera proxy do przekazywania, zwiększając bezpieczeństwo. Zwykle podczas korzystania z ProxyPass powinno być ustawione na „wyłączone”, aby uniknąć niewłaściwego wykorzystania serwera jako otwartego serwera proxy i chronić przed potencjalnymi zagrożeniami bezpieczeństwa.

Zapisz i wyjdź : Zapisz zmiany i zamknij edytor tekstu.

Włącz hosta wirtualnego : Użyj polecenia a2ensite, aby włączyć nową konfigurację hosta wirtualnego:

 sudo a2ensite example.com.conf

Załaduj ponownie Apache: Aby zastosować zmiany, załaduj ponownie Apache, aby aktywować nowego hosta wirtualnego:

 sudo systemctl reload apache2

Po wykonaniu tych kroków nowy wirtualny host jest teraz aktywny i gotowy do obsługi wyznaczonej witryny internetowej lub aplikacji. Należy pamiętać, że zmiany zaczną obowiązywać dopiero po włączeniu wirtualnego hosta i ponownym załadowaniu Apache. Dodatkowo możesz umieścić pliki swojej witryny w katalogu określonym przez dyrektywę „DocumentRoot”, aby mieć pewność, że Apache poprawnie obsługuje zawartość dla tego konkretnego hosta wirtualnego.

Sprawdź konfigurację: Upewnij się, że konfiguracja zwrotnego serwera proxy działa zgodnie z oczekiwaniami. Odwiedź wyznaczoną nazwę domeny (np. „reverse-proxy.example.com”) w przeglądarce internetowej, a Apache powinien poprawnie przekazać żądania do serwera zaplecza.

Pamiętaj, że może być konieczne skonfigurowanie dodatkowych ustawień w zależności od konkretnych przypadków użycia, takich jak obsługa certyfikatów SSL, równoważenie obciążenia lub serwer proxy WebSocket . Regularnie monitoruj wydajność i bezpieczeństwo serwera, aby zapewnić płynne działanie.

Jak używać Apache jako odwrotnego proxy w Cyberpanelu

W Cyberpanel integracja Apache z OpenLiteSpeed ​​na zapleczu oferuje to, co najlepsze z obu światów, łącząc zalety szybkości OpenLiteSpeed ​​z bogatymi w funkcje możliwościami Apache. Warto zauważyć, że wykorzystanie Apache jako odwrotnego proxy nie obniża wydajności pamięci podręcznej ls; utrzymasz ten sam poziom wydajności, co w przypadku samego OpenLiteSpeed . W tej konfiguracji OpenLiteSpeed ​​pozostaje odpowiedzialny za przekazywanie ruchu frontendowego do Apache, który obsługuje żądania z backendu. Ponadto ta integracja jest obsługiwana zarówno w systemach operacyjnych AlmaLinux , jak i Ubuntu . Postępując zgodnie z tym artykułem, użytkownicy mogą w pełni skorzystać z korzyści oferowanych przez połączenie Apache i OpenLiteSpeed ​​w konfiguracji odwrotnego proxy.

Zaloguj się do panelu Cyberpanel.

Przejdź do opcji witryny Kliknij opcję Utwórz witrynę internetową

Wprowadź nazwę swojej domeny, adres e-mail i wersję PHP, a następnie wybierz Apache jako odwrotne proxy. Po wprowadzeniu danych kliknij Utwórz stronę internetową. Może to zająć trochę czasu, a następnie zostanie utworzone

Ta strona będzie działać w Apache jako tryb odwrotnego proxy. Na froncie będzie działać Openlitespeed, a na zapleczu Apache. Tak więc wszystkie twoje reguły htaccess będą działać tak, jak kiedyś, niezależnie od tego, czy używasz Cpanel, czy dowolnego innego panelu sterowania

Możesz zobaczyć, że witryna zostanie pomyślnie utworzona.

W przypadku tej witryny możesz zarządzać konfiguracją Apache dla tej witryny w naszym menedżerze witryn. Kliknij Zarządzaj

Gdy już tu jesteś, kliknij Apache Manager

Nawet Ty możesz wtedy przełączyć się na czysty Openlitespeed. Powiedzmy, że chcesz zdecydować, że nie chcesz używać Apache na zapleczu tej witryny. Jeśli chcesz przełączyć się na czysty Openlitespeed, wybierz wersję PHP i kliknij przełącz na czysty Openlitespeed. Można go przekonwertować na Apache, jeśli korzysta z OpenLitespeed

To są konfiguracje Apache. Możesz łatwo edytować, jeśli chcesz coś edytować, ale upewnij się, że wiesz, co robisz, ponieważ coś tutaj jest nie tak i Twoja witryna przestanie działać

W naszych konfiguracjach Apache używamy PHP-FPM, więc są to konfiguracje PHP-FPM, których używasz

W przypadku konfiguracji PHP Przejdź do PHP i kliknij edytuj konfiguracje PHP. Jeśli chcesz edytować konfiguracje PHP.

Jeśli używasz Apache, musisz także edytować konfiguracje PHP, więc jeśli masz zainstalowany Apache, zobaczysz ten adres URL.

Domyślnie będziesz mógł edytować konfiguracje dla Litespeed Php. Jeśli chcesz edytować konfiguracje dla Apache, kliknij również EDYTUJ KONFIGURACJE APACHE

Po kliknięciu EDYTUJ KONFIGURACJE APACHE możesz zrobić cokolwiek z konfiguracjami Litespeed, takimi jak post_max_size, upload_max_filesize, max_execution_time lub cokolwiek innego.

Upewnij się, że po edycji konfiguracji kliknij Zapisz zmiany

Podobnie, możesz również użyć Edycji zaawansowanej

Podobnie możesz zainstalować rozszerzenia PHP dla Apache. Wystarczy kliknąć PHP->Zainstaluj rozszerzenia

Jeśli używasz Apache, musisz również ZARZĄDZAĆ ROZSZERZENIAMI APACHE , więc jeśli masz zainstalowany Apache, zobaczysz ten adres URL.  

Domyślnie będziesz mógł instalować rozszerzenia dla Litespeed Php. Jeśli chcesz zainstalować rozszerzenia dla Apache, kliknij również ZARZĄDZAJ ROZSZERZENIAMI APACHE

powiązana zawartość

Możesz również zapoznać się z naszym przewodnikiem na temat Apache vs NGINX Kto WYGRYWA pod względem wydajności?