question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Cant connect to the socket when hosted by proxy

See original GitHub issue

⚠️ Please verify that this bug has NOT been raised before.

  • I checked and didn’t find similar issue

🛡️ Security Policy

Description

I just installed Uptime Kuma and im very happy with it. However, as im hosting it with docker and i want to point a subdomain to it through my Plesk installation, i have to do that through a ProxyPass like so:

RewriteEngine On
ProxyPass / https://ip:3001/
ProxyPassReverse / https//ip:3001/

When doing that, i can successfully open the subdomain, and it will be directed to the Docker installation, but the websocket connection fails: xFl2DfCk1993b

Can this somehow be fixed?

👟 Reproduction steps

  1. Install Uptime Kuma through Docker.
  2. Point a ProxyPass to the IP and Port of the Docker instance.
  3. Visit the host configured through the ProxyPass.
  4. See Error 😛

👀 Expected behavior

I would like to still be able to use Uptime Kuma even when hosted with a ProxyPass. The Websocket should be able to connect.

😓 Actual Behavior

The Websocket can not connect properly. View image above.

🐻 Uptime-Kuma Version

1.10.2

💻 Operating System and Arch

Windows 10

🌐 Browser

Chrome

🐋 Docker Version

19.03.15

🟩 NodeJS Version

No response

📝 Relevant log output

vendor.f3bba5ad.js:55 WebSocket connection to 'wss://kuma.example.de/socket.io/?EIO=4&transport=websocket' failed: 
doOpen @ vendor.f3bba5ad.js:55
index.3fc36d03.js:1 Failed to connect to the backend. Socket.io connect_error: websocket error
(anonymous) @ index.3fc36d03.js:1
vendor.f3bba5ad.js:55 WebSocket connection to 'wss://kuma.example.de/socket.io/?EIO=4&transport=websocket' failed: 
doOpen @ vendor.f3bba5ad.js:55
index.3fc36d03.js:1 Failed to connect to the backend. Socket.io connect_error: websocket error
(anonymous) @ index.3fc36d03.js:1
vendor.f3bba5ad.js:55 WebSocket connection to 'wss://kuma.example.de/socket.io/?EIO=4&transport=websocket' failed: 
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
index.3fc36d03.js:1 Failed to connect to the backend. Socket.io connect_error: websocket error
(anonymous) @ index.3fc36d03.js:1
t.emit @ vendor.f3bba5ad.js:55
emitReserved @ vendor.f3bba5ad.js:55
onerror @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
emitReserved @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
vendor.f3bba5ad.js:55 WebSocket connection to 'wss://kuma.example.de/socket.io/?EIO=4&transport=websocket' failed: 
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
index.3fc36d03.js:1 Failed to connect to the backend. Socket.io connect_error: websocket error
(anonymous) @ index.3fc36d03.js:1
t.emit @ vendor.f3bba5ad.js:55
emitReserved @ vendor.f3bba5ad.js:55
onerror @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
emitReserved @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
setTimeout (async)
reconnect @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
vendor.f3bba5ad.js:55 WebSocket connection to 'wss://kuma.example.de/socket.io/?EIO=4&transport=websocket' failed: 
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
index.3fc36d03.js:1 Failed to connect to the backend. Socket.io connect_error: websocket error
(anonymous) @ index.3fc36d03.js:1
t.emit @ vendor.f3bba5ad.js:55
emitReserved @ vendor.f3bba5ad.js:55
onerror @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
emitReserved @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
setTimeout (async)
reconnect @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
setTimeout (async)
reconnect @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
vendor.f3bba5ad.js:55 WebSocket connection to 'wss://kuma.example.de/socket.io/?EIO=4&transport=websocket' failed: 
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
index.3fc36d03.js:1 Failed to connect to the backend. Socket.io connect_error: websocket error
(anonymous) @ index.3fc36d03.js:1
t.emit @ vendor.f3bba5ad.js:55
emitReserved @ vendor.f3bba5ad.js:55
onerror @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
emitReserved @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
setTimeout (async)
reconnect @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
setTimeout (async)
reconnect @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
setTimeout (async)
reconnect @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
vendor.f3bba5ad.js:55 WebSocket connection to 'wss://kuma.example.de/socket.io/?EIO=4&transport=websocket' failed: 
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
index.3fc36d03.js:1 Failed to connect to the backend. Socket.io connect_error: websocket error
(anonymous) @ index.3fc36d03.js:1
t.emit @ vendor.f3bba5ad.js:55
emitReserved @ vendor.f3bba5ad.js:55
onerror @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
emitReserved @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
setTimeout (async)
reconnect @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
setTimeout (async)
reconnect @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
setTimeout (async)
reconnect @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
setTimeout (async)
reconnect @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
t.emit @ vendor.f3bba5ad.js:55
onError @ vendor.f3bba5ad.js:55
ws.onerror @ vendor.f3bba5ad.js:55
error (async)
addEventListeners @ vendor.f3bba5ad.js:55
doOpen @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
QM @ vendor.f3bba5ad.js:55
dC.exports @ vendor.f3bba5ad.js:55
open @ vendor.f3bba5ad.js:55
(anonymous) @ vendor.f3bba5ad.js:55

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:18 (1 by maintainers)

github_iconTop GitHub Comments

2reactions
kkretschcommented, Dec 4, 2021

I had a similar problem first when using Apache as reverse proxy. With the following setup it works now fine:


ProxyPreserveHost On
ProxyPass / http://127.0.0.1:3001/
ProxyPassReverse / http://127.0.0.1:3001/
Protocols h2 http/1.1
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:3001/$1" [P,L]

I also did activate these apache modules for it to run:

a2enmod proxy_http
a2enmod proxy_wstunnel
1reaction
petittitouancommented, Feb 26, 2022

The Status page don’t use Sockets I think but in your dashboard look at the errors in console

Read more comments on GitHub >

github_iconTop Results From Across the Web

Can't connect to HTTPS sites using Socket HTTP-proxy
For HTTPS though it cannot work: with HTTPS you need to first read the request (CONNECT) from the client and forward it to...
Read more >
What can I do if I see "Cannot connect to WebSocket" when ...
Go to Control Panel > Login Portal > Advanced > Reverse Proxy. · Select the rule with the issue and click Edit. ·...
Read more >
"WebSocket Unable to Connect” error message, what should I ...
The “WebSocket unable to connect” error message indicates that you are likely working behind a proxy that doesn't support the WebSocket ...
Read more >
HAProxy Network Error: cannot bind socket - DigitalOcean
An HAProxy cannot bind socket error message is generated when there is another process listening on the same interface and TCP port ...
Read more >
How to Fix "Can't Connect to Proxy Server" on Windows 10
This videos shows how to fix the " unable to connect to the proxy server" error on Windows 10. System Restore tool command:rstrui.exe....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found