Jak skonfigurować proxy Nginx Reverse

Jak skonfigurować proxy Nginx Reverse

W tym przewodniku dowiesz się, jak skonfigurować proxy Nginx Reverse z instrukcjami krok po kroku. Wyjaśnimy również, jak działa odwrotny serwer proxy i jakie są jego zalety. Ponadto przechodzimy również różne opcje konfiguracyjne, których administratorzy Linux zwykle zatrudniają na swoich serwerach odwrotnych.

W tym samouczku nauczysz się:

  • Jak działa odwrotny proxy
  • Jakie są zalety odwrotnego proxy
  • Jak skonfigurować proxy Nginx Reverse
  • Jak przekazać nagłówki
  • Jak skonfigurować równoważenie obciążenia
  • Jak przetestować konfigurację Nginx
Jak skonfigurować proxy Nginx Reverse

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Niezależny od rozkładu
Oprogramowanie Nginx
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Jak działa odwrotny proxy?

System, który znajduje się między klientem a serwerem WWW (lub serwerów), może być skonfigurowany jako odwrotny proxy. Usługa proxy działa jako frontend i działa poprzez obsługę wszystkich przychodzących żądań klientów i rozpowszechnianie ich do sieci Backend, bazy danych i/lub innych serwerów (.



Korzyści z odwrotnego proxy

Konfigurowanie proxy Nginx Reverse oznacza, że ​​wszystkie żądania przychodzące są obsługiwane w jednym punkcie, co zapewnia kilka zalet:

  • Równoważenie obciążenia - Odwrotna proxy rozpowszechnia przychodzące połączenia z serwerami backend, a nawet może to zrobić zgodnie z bieżącym obciążeniem, które jest pod każdym serwerem. Zapewnia to, że żaden z serwerów zaplecza nie zostanie przeciążony żądaniami. Zapobiega również przestojom, ponieważ odwrotny proxy może przekazać ruch, jeśli serwer zaplecza zdarzy się,.
  • Centralne rejestrowanie - Zamiast mieć wiele serwerów generuje pliki dziennika, odwrotna proxy może rejestrować wszystkie istotne informacje w jednym miejscu. To sprawia, że ​​zadanie administratora jest niezwykle łatwiejsze, ponieważ problemy można odizolować znacznie szybciej i nie ma potrzeby analizowania plików dziennika z wielu lokalizacji podczas rozwiązywania problemów z rozwiązywaniem problemów.
  • Ulepszone bezpieczeństwo - Odwrotna proxy zaciemni informacje o serwerach zaplecza, a także będzie działać jako pierwsza linia obrony przed atakującymi atakami. Ponieważ odwrotny proxy filtruje ruch przed przekazaniem go do backend, tylko niewinny ruch jest przekazywany innym serwerom.
  • Lepsza wydajność - Odwrotny serwer proxy może podejmować inteligentne decyzje dotyczące rozpowszechniania obciążenia na serwerach zaplecza, co powoduje szybsze czasy reakcji. Inne wspólne zadania serwerowe, takie jak buforowanie i kompresja, można również odnieść na odwrotny serwer proxy, uwalniając zasoby dla serwerów zaplecza.
CZY WIEDZIAŁEŚ?
Odwrotny serwer proxy nie jest koniecznym komponentem w każdym scenariuszu hostingu. Zalety odwrotnego proxy stają się najbardziej widoczne w warunkach wysokiego ruchu lub sytuacjach, w których wdrażane jest wiele serwerów zaplecza i wymagają pewnej formy równoważenia obciążenia.

Dlaczego Nginx?

Teraz, gdy przedstawiliśmy zalety odwrotnego proxy, możesz zastanawiać się, dlaczego powinieneś skonfigurować jeden z Nginx, w szczególności. Skalowalność Nginx i jego sprawdzona zdolność do obsługi wyjątkowo dużej ilości połączeń oznacza, że ​​jest idealna do wdrażania jako odwrotny proxy i równoważenie obciążenia.

Powszechną aplikacją jest umieszczenie Nginx między klientami a serwerem WWW, w którym może działać jako punkt końcowy dla szyfrowania SSL i akceleratora sieci Web. Operacje, które zwykle zwiększałyby obciążenie na serwerze internetowym, takie jak szyfrowanie, kompresja i buforowanie, można wykonywać bardziej wydajnie za pośrednictwem proxy Nginx Reverse.

Jak skonfigurować Nginx Reverse Proxy Instrukcje krok po kroku

Ponieważ wyjaśniliśmy, jak działa odwrotna proxy i jakie są zalety korzystania z jednego, w tej sekcji przejdziemy przez kroki wymagane do skonfigurowania odwrotnego serwera proxy Nginx.

  1. Zainstaluj Nginxyou może zainstalować Nginx z menedżerem pakietów systemu. W dystrybucji Ubuntu i Debiana polecenie to:
    $ sudo apt-get instaluj nginx 

    Na rozkładach centrów i czerwonego kapelusza:

    # mniam instaluj nginx 
  2. Wyłącz domyślny wirtualny host
    # unlink/etc/nginx/Sites-obsługujący/domyślny 


  3. Utwórz odwrotną konfigurację proxy Fiall ustawień dla odwrotnej proxy w wejściu do pliku konfiguracyjnego, a ten plik wymaga umieszczenia w katalogu dostępnym w witrynach. Zacznij od nawigacji do następującego katalogu:
    # cd/etc/nginx/witryny-dostępny 

    Następnie użyj VI lub preferowanego edytora tekstu, aby utworzyć plik konfiguracyjny:

    # vi odwrotne-proksy.conf 

    Wklej następujący szablon konfiguracji w tym nowo utworzonym pliku:

    serwer Słuchaj 80; lokalizacja/some/ścieżka/proxy_pass http: // przykład.com;  
    Kopiuj

    Zastępować przykład.com z adresem IP lub nazwą hosta serwera, na który przesyłasz. Możesz również określić port z nazwą hosta, taki jak 127.0.0.1: 8080 Na przykład. Zapisz zmiany, a następnie wyjdź z edytora tekstu.

    Zauważ, że będzie to działać dla serwerów HTTP, ale Nginx obsługuje również inne protokoły. Omówimy te opcje w następnej sekcji.

  4. Włącz zapisane ustawienia serwera proxy, włącz nową konfigurację, tworząc symboliczny link do katalogu obsługującego witryny:
    # ln -s/etc/nginx/witryny-dostępna/odwrotna-proksyma.conf/etc/nginx/witryny-obsługujący/odwrotny-proksy.conf 

Serwery inne niż HTTP

Powyższy przykład pokazuje, jak przekazać żądania na serwer HTTP, ale możliwe jest również, aby Nginx działał jako odwrotny proxy dla Fastcgi, UWSGI, SCGI, I Memcached. Zamiast używać proxy_pass Dyrektywa pokazana powyżej, zastąp ją odpowiednim typem:

  • proxy_pass (serwer HTTP - jak pokazano powyżej)
  • fastcgi_pass (serwer fastcgi)
  • UWSGI_PASS (serwer UWSGI)
  • SCGI_PASS (serwer SCGI)
  • memcached_pass (memcached Server)
Domyślny przykład dyrektywy FASTCGI_PASS

Jak przekazać nagłówki

Aby skonfigurować, co nagłówki przekazuje odwrotny serwer proxy do innych serwerów, możemy je zdefiniować w pliku konfiguracyjnym, który zrobiliśmy wcześniej. Użyj proxy_set_header dyrektywa w celu dostosowania nagłówków.
Można je skonfigurować na serwerze, lokalizacji lub bloku HTTP. Na przykład:

lokalizacja/some/ścieżka/proxy_set_header host $ host; proxy_set_header X-forwarded-Proto $ Scheme; proxy_set_header x-real-ip $ remote_addr; Proxy_Pass http: // Przykład.com; 
Kopiuj

Powyższy przykład określa trzy typy nagłówków i ustawia je na odpowiednie zmienne. Istnieje wiele różnych opcji przekazywania nagłówków, ale ten przykład pokazuje trzy, które są bardzo powszechne.

Gospodarz Nagłówek zawiera informacje o tym, który host jest żądany. X-forwarded-Proto gatunki nagłówka, jeśli żądanie to HTTP lub HTTPS. I X-Real-IP Nagłówek zawiera adres IP żądającego klienta.

Jak skonfigurować równoważenie obciążenia

Równoważenie obciążenia jest jednym z głównych uzasadnienia konfiguracji odwrotnego serwera proxy. Możemy zacząć od dodania kilku dodatkowych wierszy do pliku konfiguracyjnego, który utworzyliśmy wcześniej. Spójrz na przykład:

Upstream Backend_Servers host serwerowy1.przykład.com; Host serwera2.przykład.com; Host serwera3.przykład.com;  serwer słuchaj 80; Przykład_nazowy Server_name.com; lokalizacja/proxy_pass http: // backend_servers; 
Kopiuj

W tym przykładzie dodaliśmy kontekst o nazwie backend_servers. W środku nazwa hosta/IP każdego serwera jest określona w osobnej linii.

w proxy_pass Dyrektywa, w której normalnie wprowadziliśmy nazwę hosta lub adres IP, zamiast tego określiliśmy nazwę wyżej zdefiniowanego kontekstu: backend_servers.

Ta konfiguracja przekazuje przychodzące żądania do przykład.com do trzech różnych hostów określonych w naszym upstream. Domyślnie Nginx przekaże te żądania okrągłe Robin, co oznacza, że ​​każdy host obraca się, wystawiając żądanie.



Skonfiguruj algorytmy równoważenia obciążenia

Jak wspomniano, Round Robin jest domyślnym algorytmem, którego Nginx użyje do obrócenia żądań w górę. Dostępnych jest kilka innych algorytmów, które lepiej pasują do niektórych sytuacji:

  • najmniej_conn - Rozpowszechnia przychodzące połączenia z serwerami zaplecza na podstawie ich bieżącej liczby aktywnych połączeń. Serwer otrzyma żądanie tylko wtedy, gdy ma najmniejszą liczbę połączeń w tym momencie. Jest to szczególnie pomocne w aplikacjach, które wymagają długotrwałych połączeń z klientem.
  • ip_hash - Rozpowszechnia przychodzące połączenia na podstawie adresu IP klienta. Jest to pomocne, jeśli chcesz stworzyć spójność sesji.
  • haszysz - Rozpowszechnia przychodzące połączenia na podstawie klucza skrótu. Jest to pomocne w memcached hosts, szczególnie.

Podaj metodę równoważenia obciążenia na górze kontekstu w górę, tak jak:

Upstream backend_servers najmniej_conn; Host serwera 1.przykład.com; Host serwera2.przykład.com; Host serwera3.przykład.com; 
Kopiuj

Jak przetestować konfigurację Nginx

Zawsze powinieneś przetestować konfigurację pod kątem błędów natychmiast po edycji .conf plik, a następnie ponownie uruchom Nginx.

# Service nginx configTest # Service nginx restart 

Wniosek

W tym artykule widzieliśmy, jak skonfigurować odwrotny serwer proxy z Nginx. Dowiedzieliśmy się również, jak działa odwrotny serwer proxy i jakie są zalety korzystania z jednego. Omówiliśmy równoważenie obciążenia i różne opcje, których potrzebuje administrator, aby skonfigurować je na własnym odwrotnym proxy.

Po wykonaniu kroków w tym przewodniku, mam nadzieję, że zobaczysz znaczny wzrost wydajności w środowisku internetowym i łatwiej będzie zarządzać teraz, gdy połączenia przychodzące są wysyłane do jednego punktu.

Powiązane samouczki Linux:

  • Instalacja nagłówków jądra Manjaro Linux
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Jak często musisz ponownie uruchomić serwer Linux?
  • OpenLitespeed jako odwrotny proxy
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Hung Linux System? Jak uciec do wiersza poleceń i…
  • Ubuntu 20.04 Przewodnik