docs: Nginx-Config mit API-Proxy + WebSocket-Support, vite ws:true
This commit is contained in:
parent
e44bd314e8
commit
cb5922714c
@ -51,20 +51,25 @@ Dann `config.js` anpassen:
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
// frontend/src/config.js
|
// frontend/src/config.js
|
||||||
export const BACKEND_HOST = '192.168.85.13' // IP des Backend-Servers
|
export const BACKEND_HOST = '192.168.85.13' // IP des Backend-Servers (für direkte Links, z.B. Tunnel-Ports)
|
||||||
export const BACKEND_URL = `https://${BACKEND_HOST}:8443`
|
export const BACKEND_URL = `https://${BACKEND_HOST}:8443`
|
||||||
export const API_KEY = 'DEIN_API_KEY' // aus backend/config.yaml → api_keys[0]
|
export const API_KEY = 'DEIN_API_KEY' // aus backend/config.yaml → api_keys[0]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> **Hinweis:** API-Calls laufen im Produktivbetrieb über den Nginx-Proxy (`/api/` → Backend).
|
||||||
|
> `BACKEND_HOST` wird nur noch für direkte Links verwendet (z.B. WebGUI-Tunnel-Ports).
|
||||||
|
> `BACKEND_URL` wird im Dev-Server-Modus (Vite) für direkte API-Calls verwendet.
|
||||||
|
|
||||||
Für die **lokale Entwicklung** (`npm run dev`) muss zusätzlich `vite.config.js` angepasst werden:
|
Für die **lokale Entwicklung** (`npm run dev`) muss zusätzlich `vite.config.js` angepasst werden:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// vite.config.js → server.proxy
|
// vite.config.js → server.proxy
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api': {
|
'/api': {
|
||||||
target: 'https://192.168.85.13:8443', // Backend-IP eintragen
|
target: 'https://192.168.85.13:8443', // Backend-IP anpassen
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
secure: false,
|
secure: false,
|
||||||
|
ws: true, // WebSocket-Proxy aktivieren (Web Terminal, Agent-WS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -99,9 +104,14 @@ systemctl start nginx
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. Nginx konfigurieren (Single-Page Application)
|
## 5. Nginx konfigurieren
|
||||||
|
|
||||||
React Router benötigt ein Nginx-Config das alle Routen auf `index.html` umleitet:
|
React Router benötigt ein Nginx-Config das alle Routen auf `index.html` umleitet. Zusätzlich proxyt Nginx alle `/api/`-Requests zum Backend — das löst zwei Probleme:
|
||||||
|
- **CORS** entfällt komplett (gleicher Origin)
|
||||||
|
- **WebSocket-Verbindungen** (Web Terminal, Agent-WS) funktionieren ohne Browser-Zertifikatswarning
|
||||||
|
|
||||||
|
> **Wichtig:** `proxy_ssl_verify off` ist nötig da das Backend ein selbstsigniertes Zertifikat verwendet.
|
||||||
|
> **Wichtig:** `proxy_read_timeout 86400` ist nötig für lang laufende WebSocket-Verbindungen (Terminal, Tunnel).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Bestehende Default-Config ersetzen
|
# Bestehende Default-Config ersetzen
|
||||||
@ -113,6 +123,25 @@ server {
|
|||||||
root /var/www/html;
|
root /var/www/html;
|
||||||
index index.html;
|
index index.html;
|
||||||
|
|
||||||
|
# API Reverse-Proxy zum Backend (REST + WebSocket)
|
||||||
|
location /api/ {
|
||||||
|
client_max_body_size 50m;
|
||||||
|
|
||||||
|
proxy_pass https://192.168.85.13:8443;
|
||||||
|
proxy_ssl_verify off;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
# WebSocket-Support (Web Terminal, Agent-WS, Tunnel)
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_read_timeout 86400;
|
||||||
|
}
|
||||||
|
|
||||||
# React SPA — alle Routen auf index.html
|
# React SPA — alle Routen auf index.html
|
||||||
location / {
|
location / {
|
||||||
try_files $uri $uri/ /index.html;
|
try_files $uri $uri/ /index.html;
|
||||||
@ -137,6 +166,8 @@ rm -f /etc/nginx/sites-enabled/default
|
|||||||
nginx -t && systemctl reload nginx
|
nginx -t && systemctl reload nginx
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> **Backend-IP anpassen:** `192.168.85.13:8443` durch die tatsächliche Backend-Adresse ersetzen.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 6. Deploy (auf dem Frontend-Server selbst)
|
## 6. Deploy (auf dem Frontend-Server selbst)
|
||||||
@ -194,11 +225,13 @@ Startet Vite Dev-Server auf `http://FRONTEND_IP:5173` mit Hot-Reload.
|
|||||||
API-Calls werden per Proxy an das Backend weitergeleitet — `vite.config.js` anpassen:
|
API-Calls werden per Proxy an das Backend weitergeleitet — `vite.config.js` anpassen:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
// vite.config.js
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api': {
|
'/api': {
|
||||||
target: 'https://192.168.85.13:8443', // Backend-IP
|
target: 'https://192.168.85.13:8443', // Backend-IP anpassen
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
secure: false,
|
secure: false,
|
||||||
|
ws: true, // WebSocket-Proxy (Web Terminal, Agent-WS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user