Jak używać
- Wpisz domenę i wybierz typ witryny, czyli adres upstream dla proxy albo katalog główny dla pozostałych.
- Włącz HTTPS, HTTP/2, HSTS, przekierowanie www, gzip, cache i nagłówki bezpieczeństwa według potrzeb.
- Skopiuj lub pobierz konfigurację do /etc/nginx/conf.d/, uruchom nginx -t i przeładuj nginx.
Opis opcji
- Reverse proxy
- Przekazuje do upstream oraz nagłówki Host, X-Real-IP, X-Forwarded-For i X-Forwarded-Proto, aby backend znał adres i schemat klienta.
- Aplikacja jednostronicowa
- Nieznane ścieżki wracają do index.html, więc routery React Router i Vue Router nie dają 404 po odświeżeniu.
- HTTPS
- Ścieżki certyfikatów używają domyślnych ustawień certbota i przekierowują HTTP kodem 301 do HTTPS. HTTP/2 jest zapisane w formie listen 443 ssl http2.
- HSTS
- Informuje przeglądarki, aby przez rok używały wyłącznie HTTPS dla domeny i subdomen. Najpierw upewnij się, że każda subdomena obsługuje HTTPS.
Przykład: aplikacja jednostronicowa z HTTPS i www
Dla domeny example.com z zaznaczonymi opcjami Aplikacja jednostronicowa, HTTPS, HTTP/2 oraz Obsługuj także www. i przekieruj je (a Kompresja Gzip, Nagłówki bezpieczeństwa i Długi cache dla plików statycznych wyłączone, aby było krócej) generator zapisuje trzy bloki server:
- Port 80 obsługuje obie nazwy, utrzymuje dostępność
/.well-known/acme-challenge/na potrzeby odnowienia certyfikatu i wszystko inne przekierowuje nahttps://example.com$request_urikodem 301. - Port 443 dla
www.example.comużywa tego samego certyfikatu i zwraca 301 do domeny bez www. - Port 443 dla
example.comobsługuje witrynę:
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
Oba bloki HTTPS wskazują na /etc/letsencrypt/live/example.com/fullchain.pem i privkey.pem, dopuszczają TLS 1.2 i 1.3 oraz używają współdzielonej pamięci podręcznej sesji o rozmiarze 10 MB z jednodniowym limitem czasu sesji. Wiersz try_files sprawia, że odświeżenie strony na trasie po stronie klienta, takiej jak /settings, zwraca aplikację zamiast błędu 404.
Najczęściej zadawane pytania
Dlaczego nginx -t ostrzega, że parametr http2 jest przestarzały?
Od nginx 1.25.1 preferowana jest osobna dyrektywa http2 on, ale wersja 1.24 z Ubuntu 24.04 jej nie rozumie. Forma listen ... http2 działa wszędzie.
Czy certyfikat musi obejmować www?
Tak, gdy włączone jest przekierowanie www. Zamów obie nazwy, na przykład certbot -d example.com -d www.example.com.
Upload kończy się błędem 413. Co zrobić?
Domyślnie nginx pozwala na ciało żądania 1 MB. Ustaw maksymalny rozmiar przesyłania zgodnie z potrzebą, na przykład 100 MB.
Połączenia WebSocket przez proxy nie działają. Dlaczego?
Proxy musi przekazywać nagłówki Upgrade i Connection. Włączenie WebSocket dodaje je i podnosi limit czasu odczytu do godziny.
Prywatność
To narzędzie działa w całości w przeglądarce. Twoje pliki i tekst są przetwarzane na Twoim urządzeniu i nigdy nie trafiają na nasze serwery.