Powrót do bloga
Maj 23, 2026Poradniki

Jak skonfigurować reverse proxy w Nginx

Proxy Node.js, Docker i innych aplikacji przez Nginx z obsługą WebSocket i SSL.

Jak skonfigurować reverse proxy w Nginx

Reverse proxy pozwala Nginx przyjmować ruch HTTP/HTTPS z internetu i przekazywać go aplikacji na localhost (np. Node.js na porcie 3000 lub kontener Docker). Standard w produkcji na VPS Hiddence.

Wymagania

  • Zainstalowany i uruchomiony Nginx
  • Aplikacja nasłuchuje na localhost (np. 127.0.0.1:3000)
  • Domena wskazuje na VPS (dla SSL)
  • Porty 80 i 443 otwarte w zaporze

Podstawowa konfiguracja

Utwórz konfigurację witryny dla domeny:

bash
server {
    listen 80;
    server_name app.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        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;
    }
}

sudo nginx -t && sudo systemctl reload nginx

Obsługa WebSocket

Potrzebne dla Socket.io, paneli i aplikacji czasu rzeczywistego:

bash
location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
}

HTTPS przez Certbot

Po sprawdzeniu HTTP wystaw certyfikat:

bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d app.yourdomain.com

# Certbot will update your server block for SSL automatically

Wskazówki

  • Dla streamingu wyłącz proxy_buffering off
  • Zwiększ client_max_body_size przy dużych uploadach
  • Wiele aplikacji na różnych subdomenach
  • Wiele backendów — blok upstream i load balancing
  • Błąd 502 — sprawdź /var/log/nginx/error.log