110 lines
2.8 KiB
Markdown
110 lines
2.8 KiB
Markdown
# WebSocket Connection Debug Guide
|
|
|
|
## 🚨 **Current Issue**
|
|
`wss://orly-relay.imwald.eu/` returns `NS_ERROR_WEBSOCKET_CONNECTION_REFUSED`
|
|
|
|
## 🔍 **Debug Steps**
|
|
|
|
### **Step 1: Verify Relay is Running**
|
|
```bash
|
|
# On your server
|
|
curl -I http://127.0.0.1:7777
|
|
# Should return: HTTP/1.1 426 Upgrade Required
|
|
|
|
docker ps | grep stella
|
|
# Should show running container
|
|
```
|
|
|
|
### **Step 2: Test Apache Modules**
|
|
```bash
|
|
# Check if WebSocket modules are enabled
|
|
apache2ctl -M | grep -E "(proxy|rewrite)"
|
|
|
|
# If missing, enable them:
|
|
sudo a2enmod proxy
|
|
sudo a2enmod proxy_http
|
|
sudo a2enmod proxy_wstunnel
|
|
sudo a2enmod rewrite
|
|
sudo a2enmod headers
|
|
sudo systemctl restart apache2
|
|
```
|
|
|
|
### **Step 3: Check Apache Configuration**
|
|
```bash
|
|
# Check what Plesk generated
|
|
sudo cat /etc/apache2/plesk.conf.d/vhosts/orly-relay.imwald.eu.conf
|
|
|
|
# Look for proxy and rewrite rules
|
|
grep -E "(Proxy|Rewrite)" /etc/apache2/plesk.conf.d/vhosts/orly-relay.imwald.eu.conf
|
|
```
|
|
|
|
### **Step 4: Test Direct WebSocket Connection**
|
|
```bash
|
|
# Test if the issue is Apache or the relay itself
|
|
echo '["REQ","test",{}]' | websocat ws://127.0.0.1:7777/
|
|
|
|
# If that works, the issue is Apache proxy
|
|
# If that fails, the issue is the relay
|
|
```
|
|
|
|
### **Step 5: Check Apache Error Logs**
|
|
```bash
|
|
# Watch Apache errors in real-time
|
|
sudo tail -f /var/log/apache2/error.log
|
|
|
|
# Then try connecting to wss://orly-relay.imwald.eu/ and see what errors appear
|
|
```
|
|
|
|
## 🔧 **Specific Plesk Fix**
|
|
|
|
Based on your current status, try this **exact configuration** in Plesk:
|
|
|
|
### **Go to Apache & nginx Settings for orly-relay.imwald.eu:**
|
|
|
|
**Clear both HTTP and HTTPS sections, then add to HTTPS:**
|
|
|
|
```apache
|
|
# Enable proxy
|
|
ProxyRequests Off
|
|
ProxyPreserveHost On
|
|
|
|
# WebSocket handling - the key part
|
|
RewriteEngine On
|
|
RewriteCond %{HTTP:Upgrade} =websocket [NC]
|
|
RewriteCond %{HTTP:Connection} upgrade [NC]
|
|
RewriteRule /(.*) ws://127.0.0.1:7777/$1 [P,L]
|
|
|
|
# Fallback for regular HTTP
|
|
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
|
|
RewriteRule /(.*) http://127.0.0.1:7777/$1 [P,L]
|
|
|
|
# Headers
|
|
ProxyAddHeaders On
|
|
```
|
|
|
|
### **Alternative Simpler Version:**
|
|
If the above doesn't work, try just:
|
|
|
|
```apache
|
|
ProxyPass / http://127.0.0.1:7777/
|
|
ProxyPassReverse / http://127.0.0.1:7777/
|
|
ProxyPass /ws ws://127.0.0.1:7777/
|
|
ProxyPassReverse /ws ws://127.0.0.1:7777/
|
|
```
|
|
|
|
## 🧪 **Testing Commands**
|
|
|
|
```bash
|
|
# Test the WebSocket after each change
|
|
echo '["REQ","test",{}]' | websocat wss://orly-relay.imwald.eu/
|
|
|
|
# Check what's actually being served
|
|
curl -v https://orly-relay.imwald.eu/ 2>&1 | grep -E "(HTTP|upgrade|connection)"
|
|
```
|
|
|
|
## 🎯 **Expected Fix**
|
|
|
|
The issue is likely that Apache isn't properly handling the WebSocket upgrade request. The `proxy_wstunnel` module and correct rewrite rules should fix this.
|
|
|
|
Try the **simpler ProxyPass version first** - it's often more reliable in Plesk environments.
|