Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

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.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}

Blok location

location /api/

nagłówek generowanego bloku

Tryb

Reverse proxy

prefiks ścieżki

Linie konfiguracji

24

Rozmiar konfiguracji

854 B
# Generated location block (proxy, prefix match).
location /api/ {
    # Reverse proxy.
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    # Lightweight security headers (review for your app).
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;
    add_header Permissions-Policy "interest-cohort=()" always;
}

# Deny access to hidden files, except for /.well-known (ACME, etc.).
location ~ /\.(?!well-known) {
    deny all;
}
Tryb wybiera zestaw dyrektyw wewnątrz bloku; puste pola są pomijane, a opcje cache i security headers (jeśli włączone) dopisują add_header do tego samego bloku location
TrybDyrektywy generowane przez kodKluczowa linia z przykładu
Statyczne pliki root, index, try_files — tylko pola, które wypełnisz try_files $uri $uri/ /index.php?$query_string;
Reverse proxy proxy_pass; opcjonalnie proxy_set_header (Host, X-Real-IP, X-Forwarded-For, X-Forwarded-Proto), a przy websocketach proxy_http_version 1.1 z Upgrade i Connection proxy_pass http://127.0.0.1:3000;
PHP-FPM root; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass (zawsze obecne) fastcgi_pass unix:/run/php/php8.2-fpm.sock;
Przekierowanie return z kodem 301/302/307/308 i celem return 301 https://example.com/nowy-adres;

Przykład statyczny to konfiguracja pod Laravela: ostatnia linia try_files $uri $uri/ /index.php?$query_string wysyła każdy adres, który nie jest plikiem, do front controllera public/index.php — to nginxowy odpowiednik reguły rewrite z pliku .htaccess Apache. Pole „Try files” przepisywane jest 1:1, więc wzorzec wklejasz sam.

Kod generuje wyłącznie prefiks bez modyfikatora, „=” (dokładne) i „~” (regex rozróżniający wielkość liter) — „^~” oraz „~*” trzeba dopisać ręcznie po wygenerowaniu
Typ dopasowaniaNagłówek bloku z silnikaZastosowanie
Prefiks (bez modyfikatora) location /assets/ { Wszystkie adresy zaczynające się od ścieżki — nginx wybiera najdłuższy prefiks
Dokładne „=” location = /health { Jeden konkretny adres; dopasowanie „=” wygrywa z prefiksami i kończy wyszukiwanie
Wyrażenie regularne „~” location ~ \.(jpg|png)$ { Dopasowanie wzorcem (rozróżnia wielkość liter); liczy się pierwsze pasujące w kolejności pliku

Warto wiedzieć — bloki location w praktyce

Jak nginx wybiera blok

Najpierw sprawdzane są dopasowania dokładne („=”), potem prefiksy — wygrywa najdłuższy, a na końcu liczy się pierwsze pasujące wyrażenie regularne w kolejności pliku. Dlatego blok = /health może współistnieć z prefiksem /.

Laravel i przyjazne adresy

Reguły rewrite z .htaccess w nginx zastępuje try_files: $uri $uri/ /index.php?$query_string najpierw szuka pliku, potem katalogu, a w ostateczności kieruje żądanie do index.php z oryginalną ścieżką w query string.

Pułapka dziedziczenia add_header

W nginx dyrektywy add_header z poziomu server przestają działać, gdy blok location ma własne add_header. Ten konfigurator wstawia opcje cache i security headers bezpośrednio do bloku location, więc nagłówki nie znikają.

Drobne bloki, duży efekt

Opcja deny dotfiles dokleja blok location ~ /\.(?!well-known) z deny all, który chowa .env i .git przed światem (z wyjątkiem /.well-known dla certyfikatów). Basic auth przydaje się dla paneli administracyjnych i środowisk testowych.

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. root dołącza URI do ścieżki głównej, natomiast alias cał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 HTTP Cache-Control oraz Expires, 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:

  1. 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ń.
  2. Stosuj modyfikator ^~ dla statyki: Jeśli serwujesz pliki statyczne z konkretnego folderu (np. /uploads/), użyj location ^~ /uploads/. Dzięki temu Nginx nie będzie tracił czasu na sprawdzanie reguł wyrażeń regularnych dla tych zapytań.
  3. Zawsze zabezpieczaj pliki wrażliwe: Zablokuj dostęp do plików ukrytych (zaczynających się od kropki, np. .env czy .git) za pomocą reguły: location ~ /\. { deny all; }.
  4. 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.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!