Nginx to darmowy serwer WWW o otwartym kodzie źródłowym, używany do równoważenia obciążenia, buforowania i pamięci podręcznej. Od momentu powstania w 2004 roku, Nginx zyskał popularność dzięki skalowaniu serwerów WWW i odwrotnemu proxy. Ze względu na swoją wysoką wydajność i doskonałe możliwości obsługi dużej liczby połączeń, jest używany do zarządzania i kontrolowania ruchu przychodzącego.
Jak działa uwierzytelnianie HTTP?
W podstawowym uwierzytelnianiu HTTP, wszystkie ścieżki na serwerze są zablokowane i wymagają odpowiednich danych uwierzytelniających do autoryzacji. Za każdym razem, gdy użytkownik próbuje uzyskać dostęp do zabezpieczonego zasobu, serwer wysyła użytkownikowi nagłówek WWW-Authenticate oraz odpowiedź 401 Unauthorized. Jeśli nazwa użytkownika i hasło użyte przez użytkownika są poprawne i zgadzają się z plikiem klucza, połączenie zostaje nawiązane, w przeciwnym razie zostaje odrzucone.
W tym samouczku przeprowadzimy Cię przez kroki konfiguracji podstawowego uwierzytelniania HTTP z Nginx na Ubuntu 20.04.
Wymagania wstępne
Aby móc postępować zgodnie z tym samouczkiem, będziesz potrzebować:
- Najnowszej wersji zainstalowanego systemu Ubuntu na swoim systemie.
- Użytkownicy systemu muszą posiadać uprawnienia sudo.
- Zainstalowany i skonfigurowany Nginx na swoim serwerze.
Krok 1: Aktualizacja repozytoriów oprogramowania
Przed zainstalowaniem nowego oprogramowania lub pakietu API w systemie, odśwież repozytoria, aby uniknąć błędów lub konfliktów pakietów. Na początku zaktualizujemy oprogramowanie za pomocą polecenia sudo polecenia:
|
1 |
sudo apt-get update |
Teraz, gdy zaktualizowaliśmy repozytoria oprogramowania, zainstalujmy niezbędne apache2 pakiety.
Krok 2: Instalacja niezbędnych pakietów
Ponieważ konfigurujemy uwierzytelnianie HTTP dla katalogu, użyjemy polecenia htpasswd do utworzenia zaszyfrowanego hasła. Zainstaluj pakiet apache2-utils za pomocą następującego polecenia:
|
1 |
sudo apt-get install apache2-utils |
Krok 3: Utworzenie użytkownika i hasła
W tym kroku skonfigurujemy dane uwierzytelniające podstawowego uwierzytelniania HTTP. W katalogu głównym utwórz plik .htpasswd powiązany z użytkownikiem. Hasło zostanie zaszyfrowane, a nazwa pliku może być dowolna. Użyj następującego polecenia, aby utworzyć plik i dodać użytkownika z zaszyfrowanym hasłem:
|
1 |
sudo htpasswd -c /etc/nginx/.htpasswd cloudsigma |

Następnie zweryfikuj nowo utworzony plik za pomocą następującego polecenia:
|
1 |
cat /etc/nginx/.htpasswd |
Krok 4: Aktualizacja konfiguracji Nginx
Gdy mamy już dane uwierzytelniające podstawowego uwierzytelniania HTTP, skonfigurujmy Nginx i użyjmy go na naszej docelowej stronie internetowej. Wymagamy dyrektyw auth_basic oraz auth_basic_user_file do ustanowienia podstawowego uwierzytelniania HTTP. Wartość dyrektywy auth_basic jest formatem ciągu znaków, podczas gdy wartość auth_basic_user_file to ścieżka do pliku haseł utworzonego w Kroku 3.
Ważne jest, aby uwzględnić te dwie dyrektywy w pliku konfiguracyjnym docelowej witryny. Lokalizację docelowej witryny znajdziesz w katalogu /etc/nginx/sites-available . Otwórz plik konfiguracyjny za pomocą edytora nano:
|
1 |
sudo nano /etc/nginx/sites-available/default |
Then, add both of these directives under the location section:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . server_name localhost; location / { # Pierwsza próba obsłużenia żądania jako plik, następnie # jako katalog, a w ostateczności wyświetlenie błędu 404. try_files $uri $uri/ =404; # Odkomentuj, aby włączyć naxsi w tej lokalizacji # include /etc/nginx/naxsi.rules auth_basic "Private Property"; auth_basic_user_file /etc/nginx/.htpasswd; } . . . |
Po dodaniu dyrektywy zapisz i zamknij plik konfiguracyjny.
Krok 5: Restart Nginx
Następnie przeładuj lub uruchom ponownie usługi Nginx, aby zastosować zmiany na naszym wirtualnym hoście. Po tym spróbujemy uzyskać dostęp do zabezpieczonej domeny za pomocą naszego podstawowego uwierzytelniania HTTP. Użyj następującego polecenia, aby aktywować usługi Nginx:
|
1 |
sudo service nginx reload |
Krok 6: Bezpieczny dostęp do sieci
Po ponownym uruchomieniu Nginx kolejnym krokiem jest próba uzyskania dostępu do adresu IP lub nazwy domeny w ulubionej przeglądarce. Po kliknięciu adresu IP http://your_domain_name/ w przeglądarce otworzy się okno z prośbą o podanie danych uwierzytelniających. Po wprowadzeniu poprawnej nazwy użytkownika i hasła zobaczysz domyślną stronę główną Nginx.
Podsumowanie
W tym samouczku dowiedzieliśmy się, jak skonfigurować podstawowe uwierzytelnianie HTTP w Nginx. Podstawowe uwierzytelnianie za pomocą nazwy użytkownika i hasła to tylko jedna z wielu opcji uwierzytelniania pozwalających na nawiązanie bezpiecznego połączenia w Nginx.
Istnieją inne zaawansowane opcje służące do uwierzytelniania serwera. Na przykład niektóre popularne metody, z których można skorzystać, obejmują integracje API, JSON Web Tokens, uwierzytelnianie oparte na kluczach SSH. Choć wdrożenie silnych mechanizmów bezpieczeństwa może początkowo wydawać się skomplikowane, są one niezwykle skuteczne w ochronie Twojej prywatności.
Ponadto istnieje wiele innych materiałów edukacyjnych i samouczków dotyczących Nginx, do których można uzyskać dostęp z naszych blogów:
- Przegląd algorytmów wyboru bloków Server i Location w Nginx
- Instalacja i konfiguracja Laravel z Nginx na Ubuntu 20.04
- Konfiguracja Django z PostgreSQL, Nginx i Gunicorn na Ubuntu 20.04
Miłego korzystania z komputera!

Komentarze
Brak komentarzy. Bądź pierwszy.