Wprowadzenie
Rozszerzenia firm trzecich są niezwykle pomocnymi dodatkami. Sprawiają one, że konfiguracja i praca z serwerem, takim jak Apache HTTP, staje się znacznie prostsza i łatwiejsza. W razie potrzeby możesz nawet użyć niektórych z tych modułów w Apache do uruchomienia odwrotnego serwera proxy. Możesz usunąć jedną warstwę z konfiguracji serwera lub użyć modułu do przekierowywania połączeń.
W tym poradniku omówimy serwer Apache oraz różne moduły powiązane z tą platformą serwerową, takie jak mod_proxy. Zobaczymy również, jak można go użyć jako odwrotnego serwera proxy do przekierowywania połączeń do serwerów aplikacji backendowych.
Co to jest Apache?
Apache jest serwerem HTTP bardzo powszechnie używanym do celów związanych z siecią Web. Można go jednak używać z wielu różnych powodów i na wielu platformach. Możesz zainstalować serwer WWW Apache na Ubuntu, postępując zgodnie z naszym samouczkiem krok po kroku. Ponadto zapoznaj się z tym samouczkiem, aby dowiedzieć się, jak zabezpieczyć serwer Apache za pomocą Let’s Encrypt. Możesz również sprawdzić, jak skonfigurować wirtualne hosty Apache na Ubuntu 20.04.
Możesz dalej badać funkcje i wdrożenie Apache za pomocą zewnętrznych modułów. Są to moduły firm trzecich, których można używać do wykonywania różnych zadań związanych z połączeniami i konfiguracją. Na przykład możesz użyć modułu mod_rewrite do przepisywania adresów URL na podstawie reguł. Innym z tych modułów jest mod_proxy. Ten ostatni moduł jest w dużej mierze niewykorzystywany w społeczności. Głównie dlatego, że wiele osób nie zdaje sobie sprawy z zakresu jego funkcjonalności i zastosowań. Mod_proxy, jak sugeruje nazwa, może pomóc w skonfigurowaniu bramy lub serwera proxy dla serwerów backendowych.
Poznajmy mod_proxy szczegółowo oraz to, jak można go użyć jako odwrotnego serwera proxy.
Mod_proxy: Używanie Apache jako odwrotnego serwera proxy
Jak zapewne się domyślasz, mod_proxy to moduł. Jest to moduł w Apache, którego można używać do tworzenia i przekierowywania różnych połączeń. Możesz go również aktywować i konfigurować jak każdy inny moduł w systemie. Wyjątkowość mod_proxy polega na tym, że nie jest to tylko jeden moduł. W rzeczywistości składa się on z zestawu różnych modułów, które znajdziesz poniżej. Każdy z nich ma do spełnienia własną funkcję. W ten sposób mod_proxy zapewnia dużą różnorodność funkcjonalną.
Przyjrzyj się następującym modułom mod_proxy:
mod_proxy
To jest główny moduł proxy. W Apache możesz użyć tego modułu do konfiguracji i zarządzania różnymi połączeniami. Może on również pomóc w przekierowywaniu połączeń.
mod_proxy_http
Jak sugeruje nazwa, moduł ten obsługuje protokoły HTTP i HTTPS. Możesz użyć tego modułu do wdrożenia funkcji proxy dla tych protokołów.
mod_proxy_ftp
Mod_proxy_ftp działa w przypadku korzystania z protokołu FTP.
mod_proxy_connect
Ten moduł jest pomocny podczas wykonywania tunelowania SSL.
mod_proxy_ajp
Możesz użyć mod_proxy_ajp podczas pracy z protokołem AJP.
mod_proxy_wstunnel
Jest to przydatne podczas pracy z gniazdami sieciowymi, takimi jak WS i WSS.
mod_proxy_balancer
Jeśli chcesz uzyskać dostęp do funkcji równoważenia obciążenia i klastrowania, możesz użyć tego modułu.
mod_cache
Moduł mod_cache jest pomocny, zgodnie z oczekiwaniami, do celów buforowania.
mod_headers
Możesz użyć tego modułu do zarządzania nagłówkami tworzonymi przy użyciu protokołu HTTP.
mod_deflate
Ten moduł jest używany do celów kompresji.
Jeśli chcesz dowiedzieć się jeszcze więcej szczegółów na temat tych modułów, możesz odwiedzić oficjalną stronę internetową Apache. Oficjalna dokumentacja zawiera również więcej informacji na temat mod_proxy oraz samego Apache.
Jak zainstalować Apache i mod_proxy?
Oto kilka prostych kroków, aby zainstalować Apache i mod_proxy w swoim systemie:
- Przygotowanie serwera
Przede wszystkim musisz upewnić się, że Twój serwer chmurowy jest przygotowany. Aby to zrobić, musisz zaktualizować system operacyjny i powiązane oprogramowanie do najnowszych wersji.
Użyj następujących poleceń, aby zaktualizować swoje aplikacje:
|
1 2 3 |
apt install aptitude aptitude update aptitude -y upgrade |
- Instalacja pakietu podstawowego
Gdy przygotujesz już swój serwer, musisz wyposażyć go w niezbędne narzędzia. W tym celu należy zainstalować pakiet build-essential. Pakiet ten składa się ze wszystkich podstawowych narzędzi potrzebnych do instalacji oprogramowania ze źródeł. Możesz go zainstalować za pomocą tego polecenia:
|
1 |
aptitude install -y build-essential |
- Pobierz moduły i zależności
Na koniec musisz zainstalować moduły i zależności. Możesz to zrobić, uruchamiając następujące polecenie:
|
1 |
aptitude install -y apache2 apache2-bin libxml2-dev |
Aktywacja modułów: Jak skonfigurować Apache z połączeniami proxy?
Zanim w ogóle przejdziesz do konfiguracji Apache, musisz aktywować moduły. Moduły te pomogą Ci dokonać niezbędnych konfiguracji i wykonywać różne zadania.
Na początek musisz sprawdzić, które moduły już działają w Twoim systemie. Co więcej, musisz również upewnić się, że wszystkie moduły są poprawnie zainstalowane i mogą być włączone. Uruchomienie tego polecenia pokaże wszystkie dostępne moduły na Twoim serwerze Apache:
|
1 |
a2enmod |

Jak widać, odpowiedź pokazuje wszystkie dostępne moduły w postaci szczegółowej listy. Przejrzyj tę listę i określ, które moduły chcesz aktywować. Aby poinformować o tym Apache, możesz użyć następującego polecenia i wpisać żądane moduły w miejsce przykładów:
|
1 |
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html lbmethod_byrequests |
Z drugiej strony, możesz również aktywować każdy moduł osobno. Aby to zrobić, użyj następujących poleceń:
|
1 2 3 4 5 6 7 8 9 10 |
a2enmod proxy a2enmod proxy_http a2enmod proxy_ajp a2enmod rewrite a2enmod deflate a2enmod headers a2enmod proxy_balancer a2enmod proxy_connect a2enmod proxy_html a2enmod lbmethod_byrequests |
Niektóre moduły będą prawdopodobnie domyślnie aktywowane na Twoim serwerze. Możesz się zastanawiać, jak potwierdzić, że są włączone. Aby upewnić się, że żądany moduł jest aktywny, możesz spróbować aktywować go dwukrotnie. Zagwarantuje to, że moduł jest włączony.
- Zmień domyślne ustawienia konfiguracji
Najpierw musisz zmienić domyślne ustawienia konfiguracji. Aby to zrobić, musisz uzyskać dostęp do domyślnego pliku konfiguracyjnego, którym jest 000-default.conf. Plik ten znajduje się w katalogu /etc/apache2/sites-enabled. Musimy go zmodyfikować w taki sposób, aby uzyskał funkcję proxy.
Zaczniesz od otwarcia edytora tekstu nano w celu edycji domyślnego wirtualnego hosta. Możesz to zrobić, uruchamiając to polecenie:
|
1 |
nano /etc/apache2/sites-enabled/000-default.conf |
Będziemy wspólnie odnosić się do mod_virtual host i mod_proxy jako wirtualnego hosta proxy. Teraz możesz wdrożyć następujące ustawienia konfiguracyjne. Możesz wprowadzić niezbędne zmiany, jakie uznasz za stosowne dla swojego systemu i wymagań:
|
1 2 3 4 5 6 7 |
<VirtualHost *:*> ProxyPreserveHost On ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ ServerName localhost </VirtualHost> |
Możesz zapisać i wyjść po naciśnięciu Ctrl + X i potwierdzeniu klawiszem Y.
- Aktywuj funkcję równoważenia obciążenia
Równoważenie obciążenia pomaga skutecznie dystrybuować połączenia na serwerze proxy. Jest to bardzo przydatne rozwiązanie, gdy używasz wielu serwerów aplikacji backendowych zamiast jednego. Funkcja równoważenia obciążenia rozdzieli połączenia, czyli „obciążenie”.
Aby włączyć tę funkcję, musisz powtórzyć kroki wspomniane wcześniej w tym przewodniku. Jednak podczas konfiguracji wirtualnego hosta należy użyć następujących ustawień konfiguracyjnych:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:*> <Proxy balancer://mycluster> # Zdefiniuj serwery zaplecza: # Serwer 1 BalancerMember http://0.0.0.0:8080/ # Serwer 2 BalancerMember http://0.0.0.0:8081/ </Proxy> # Zastosuj ustawienia VH według uznania # Jednak skonfiguruj argument ProxyPass, aby # użyć "mycluster" do równoważenia obciążenia ProxyPass / balancer://mycluster </VirtualHost> |
- Aktywuj obsługę odwrotnego proxy
Musisz zapewnić obsługę odwrotnego proxy przez wirtualny host, jeśli pracujesz z połączeniami SSL i certyfikatami. Ten pomocniczy wirtualny host musi mieć następujące ustawienia. Musisz wykonać instrukcje z poprzednich kroków. Wszystko, co musisz zrobić, to zastąpić opcje konfiguracji tymi wymienionymi poniżej:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<VirtualHost *:443> SSLEngine On # Ustaw ścieżkę do certyfikatu SSL # Użycie: SSLCertificateFile /ścieżka/do/cert.pem SSLCertificateFile /etc/apache2/ssl/file.pem # Serwery do przekazywania połączenia (proxy) lub; # Lista serwerów aplikacji: # Użycie: # ProxyPass / http://[Adres IP]:[port]/ # ProxyPassReverse / http://[Adres IP]:[port]/ # Przykład: ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ # Lub równoważenie obciążenia: # ProxyPass / balancer://nazwa_klastra_balancera </VirtualHost> |
Aby powyższa konfiguracja działała, należy również włączyć moduł SSL:
|
1 |
sudo a2enmod ssl |
- Zrestartuj Apache
Wszystkie konfiguracje zostały zakończone. Na koniec możesz zrestartować serwer Apache, aby zastosować zmiany. Możesz zrestartować Apache, uruchamiając następujące polecenie:
|
1 |
service apache2 restart |
Podsumowanie
Voila! Właśnie pomyślnie skonfigurowałeś bramę odwrotnego proxy (reverse proxy) na swoim serwerze Apache. Teraz Apache będzie przekierowywać przychodzące połączenia do Twoich serwerów aplikacji na zapleczu.
Świetną rzeczą jest to, że proces konfiguracji wymaga niewiele wysiłku i jest dość prosty. Teraz, gdy znasz już dokładne kroki, jak to osiągnąć, nie powinieneś mieć żadnych problemów ze skonfigurowaniem odwrotnego proxy w Apache.
Miłej pracy!

Komentarze
Brak komentarzy. Bądź pierwszy.