Pulse/docs/REVERSE_PROXY.md

54 lines
1.3 KiB
Markdown

# 🔄 Reverse Proxy Setup
Pulse uses WebSockets for real-time updates. Your proxy **MUST** support WebSockets.
## ⚡ Quick Configs
### Nginx
```nginx
location / {
proxy_pass http://localhost:7655;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# Critical for WebSockets
proxy_read_timeout 86400; # 24h
}
```
### Caddy
```caddy
pulse.example.com {
reverse_proxy localhost:7655
}
```
### Traefik (Docker Compose)
```yaml
labels:
- "traefik.enable=true"
- "traefik.http.routers.pulse.rule=Host(`pulse.example.com`)"
- "traefik.http.services.pulse.loadbalancer.server.port=7655"
```
### Apache
```apache
RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:7655/$1" [P,L]
ProxyPass / http://localhost:7655/
ProxyPassReverse / http://localhost:7655/
```
---
## ⚠️ Common Issues
- **"Connection Lost"**: WebSocket upgrade failed. Check `Upgrade` and `Connection` headers.
- **502 Bad Gateway**: Pulse is not running on port 7655.
- **CORS Errors**: Do not add CORS headers in the proxy; Pulse handles them. Set `ALLOWED_ORIGINS` env var if needed.