Konfigurator bloków location Nginx — generator reguł i przekierowań
Generuj konfigurację bloków location dla Nginx: przekierowania, proxy_pass, static files, cache headers, gzip. Pobierz gotowy config.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćKonfigurator bloków location Nginx – serce konfiguracji serwera webowego
Serwer Nginx to jedno z najpopularniejszych i najbardziej wydajnych rozwiązań do serwowania stron internetowych, pełniące funkcję serwera HTTP, reverse proxy oraz load balancera. Najważniejszym elementem konfiguracji witryny w Nginx jest blok location. Decyduje on o tym, jak serwer ma reagować na zapytania skierowane pod konkretne adresy URI (Universal Resource Identifier). To właśnie wewnątrz bloku location definiujemy przekierowania, serwowanie plików statycznych, nagłówki pamięci podręcznej (cache control), kompresję gzip, zabezpieczenia oraz przekazywanie ruchu do interpreterów PHP (np. PHP-FPM) czy serwerów aplikacji Node.js.
Nasze profesjonalne narzędzie to darmowy generator i konfigurator bloków location Nginx. Pozwala na wizualne wyklikanie skomplikowanych reguł rutingu bez konieczności pamiętania trudnej składni Nginx. Wystarczy wybrać typ dopasowania, podać ścieżkę URI i zaznaczyć pożądane opcje (np. proxy_pass, nagłówki bezpieczeństwa, reguły rewrite). Narzędzie wygeneruje w pełni poprawny plik konfiguracyjny gotowy do wklejenia do pliku konfiguracyjnego w folderze /etc/nginx/sites-available/.
Modyfikatory dopasowania location w Nginx i ich priorytety
Nginx dopasowuje zapytania do bloków location na podstawie modyfikatorów określających sposób porównywania ciągów znakowych. Kolejność sprawdzania reguł nie zależy wyłącznie od kolejności ich zapisu w pliku, co bywa częstym źródłem błędów:
| Modyfikator | Typ dopasowania (Match Type) | Priorytet sprawdzania | Przykładowy zapis w konfiguracji | Zastosowanie praktyczne |
|---|---|---|---|---|
= |
Dokładne (Exact match) | 1 (Najwyższy - natychmiastowe zatrzymanie wyszukiwania) | location = /favicon.ico { ... } |
Serwowanie pojedynczych, często odpytywanych plików (np. robots.txt). |
^~ |
Najdłuższy prefiks bez wyrażeń regularnych | 2 (Zatrzymuje wyszukiwanie reguł regex) | location ^~ /images/ { ... } |
Blokowanie sprawdzania wyrażeń regularnych dla folderów ze statyką. |
~ |
Wyrażenie regularne – czułe na wielkość liter (Case-sensitive regex) | 3 (Sprawdzane w kolejności zapisu w pliku) | location ~ \.(jpg|png|gif)$ { ... } |
Konfiguracja nagłówków cache dla grafik o konkretnych rozszerzeniach. |
~* |
Wyrażenie regularne – obojętne na wielkość liter (Case-insensitive regex) | 3 (Sprawdzane w kolejności zapisu w pliku) | location ~* \.php$ { ... } |
Przekazywanie wszystkich zapytań PHP do interpretera PHP-FPM. |
| Brak modyfikatora | Dopasowanie prefiksu (Prefix match) | 4 (Najniższy - wybierane tylko gdy brak innych dopasowań) | location /blog/ { ... } |
Domyślne kierowanie ruchu dla całych podkatalogów serwisu. |
Najpopularniejsze dyrektywy stosowane wewnątrz bloku location
Blok location pozwala na sterowanie zachowaniem serwera za pomocą zestawu dyrektyw. Oto najważniejsze z nich:
root/alias: Definiują fizyczną ścieżkę w systemie operacyjnym, pod którą znajdują się pliki serwisu.rootdołącza URI do ścieżki głównej, natomiastaliascałkowicie ją zastępuje.try_files: Kluczowa dyrektywa rutingu (szczególnie dla frameworków takich jak Laravel czy WordPress). Sprawdza istnienie fizycznego pliku lub folderu na dysku, a w przypadku ich braku kieruje ruch do wskazanego pliku (np./index.php?$query_string).proxy_pass: Podstawowa dyrektywa konfiguracji reverse proxy. Przekazuje zapytanie do innego serwera (np. lokalnie uruchomionej aplikacji Node.js na porcie 3000:http://127.0.0.1:3000).expires: Ustawia nagłówki HTTPCache-ControlorazExpires, informując przeglądarkę użytkownika, przez jaki czas może lokalnie przechowywać pliki statyczne (np.expires 30d;dla grafik i stylów).
Jak poprawnie skonstruować blok location? Dobre praktyki
Optymalizacja konfiguracji Nginx przekłada się bezpośrednio na bezpieczeństwo i szybkość działania strony. Przestrzegaj poniższych zasad:
- Unikaj zagnieżdżania bloków location: Choć Nginx pozwala na umieszczanie bloków location wewnątrz siebie, utrudnia to debugowanie konfiguracji i często prowadzi do nieprzewidzianych błędów dopasowań.
- Stosuj modyfikator
^~dla statyki: Jeśli serwujesz pliki statyczne z konkretnego folderu (np./uploads/), użyjlocation ^~ /uploads/. Dzięki temu Nginx nie będzie tracił czasu na sprawdzanie reguł wyrażeń regularnych dla tych zapytań. - Zawsze zabezpieczaj pliki wrażliwe: Zablokuj dostęp do plików ukrytych (zaczynających się od kropki, np.
.envczy.git) za pomocą reguły:location ~ /\. { deny all; }. - Przetestuj konfigurację przed restartem: Zanim zrestartujesz serwer komendą systemctl, zawsze uruchom polecenie
nginx -t. Weryfikuje ono składnię wszystkich plików konfiguracyjnych i ostrzega przed błędami, które mogłyby wyłączyć serwer.
Często zadawane pytania (FAQ)
Jaka jest różnica między return a rewrite w Nginx?
Dyrektywa return jest szybsza i prostsza – natychmiast zatrzymuje przetwarzanie zapytania i wysyła do przeglądarki kod statusu HTTP oraz opcjonalny URL (np. przekierowanie 301). Dyrektywa rewrite jest bardziej elastyczna – pozwala na modyfikację adresu URI za pomocą wyrażeń regularnych i kontynuowanie sprawdzania bloków location.
Jak włączyć kompresję Gzip dla określonej lokalizacji?
Aby włączyć kompresję w bloku location, należy dodać dyrektywę gzip on; oraz zdefiniować typy plików, które mają być kompresowane za pomocą gzip_types text/plain text/css application/json;. Pozwala to na zmniejszenie wagi przesyłanych plików nawet o 70%.
Co oznacza błąd "403 Forbidden" w konfiguracji location?
Błąd 403 najczęściej oznacza problem z uprawnieniami do plików w systemie Linux (serwer Nginx uruchomiony jako użytkownik www-data nie ma dostępu do katalogu roboczego) lub brak zdefiniowanego pliku indeksu (np. brak index index.html;) przy wyłączonym automatycznym listowaniu katalogów (autoindex off).
Jak przekazać IP klienta do aplikacji za reverse proxy?
Aby aplikacja działająca za proxy (np. Node.js) znała faktyczny adres IP odwiedzającego (a nie adres IP serwera proxy 127.0.0.1), należy dodać nagłówki: proxy_set_header X-Real-IP $remote_addr; oraz proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;.
Co robi dyrektywa try_files w Nginx?
Dyrektywa try_files sprawdza istnienie plików na dysku w kolejności ich zapisu we wzorze. Na przykład try_files $uri $uri/ /index.php?$query_string; najpierw spróbuje otworzyć dokładny plik, potem folder o tej samej nazwie, a jeśli oba nie istnieją, przekaże zapytanie do index.php wraz ze wszystkimi parametrami z adresu URL.