Caddy V2 WSS Getting 404

1. My Caddy version (caddy -version):

v2.0.0-beta.15 h1:Td1esMk7bebftnoBuT3gOqUGxew5HqdIKw3s36S8tNw=

2. How I run Caddy:

a. System environment:

CentOS 7, SystemD

b. Command:

Runs As Service

c. Service/unit/compose file:

This service file requires the following:

#
# 1) Group named caddy:
#      $ groupadd --system caddy
#
# 2) User named caddy, with a writeable home folder:
#      $ useradd --system \
#           --gid caddy \
#           --create-home \
#           --home-dir /var/lib/caddy \
#           --shell /usr/sbin/nologin \
#           --comment "Caddy web server" \
#           caddy
#
# 3) Caddyfile at /etc/caddy/Caddyfile that is
#    readable by the caddy user
#

[Unit]
Description=Caddy Web Server
Documentation=https://caddyserver.com/docs/
After=network.target

[Service]
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --config /etc/caddy/Caddyfile --adapter caddyfile --resume --environ
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile --adapter caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

d. My complete Caddyfile:

#gzip {
#}

xoa.stfd13.org {
        reverse_proxy 10.0.8.3:443 {
        transport http {
                tls
                tls_insecure_skip_verify
                }
        }
}

gis.stfd13.org {
        reverse_proxy arcgis-server.stfd13.org:6443 {
         header_up X-Forwarded-Host gis.stfd13.org
        transport http {
                tls
                tls_insecure_skip_verify
                }
        }
        redir / /arcgis
}
portal.stfd13.org {
        reverse_proxy arcgis-portal.stfd13.org:7443 {
        header_up X-Forwarded-Host caddy.stfd13.org
        transport http {
                tls
                tls_insecure_skip_verify
                }
        }
        redir / /arcgis/home
}
hive.stfd13.org {
        reverse_proxy 10.0.0.14:9000

}
wazuh.stfd13.org {
        reverse_proxy 10.0.0.13:5601 {
        transport http {
                tls
                tls_insecure_skip_verify
                }
        }
}
foreman.stfd13.org {
        reverse_proxy 10.0.0.10:443 {
        transport http {
                tls
                tls_insecure_skip_verify
                }
        }
}
geoevent.stfd13.org/geoevent/* {
        reverse_proxy 10.0.0.42:6143 {
                header_up X-Forwarded-Host caddy.stfd13.org
                transport http {
                        tls
                        tls_insecure_skip_verify
                        }
        }
}
geoevent.stfd13.org/arcgis/* {
        reverse_proxy 10.0.0.42:6443 {
                #header_up X-Forwarded-Host caddy.stfd13.org
                #header_up Host {http.request.host}
                #header_up X-Real-IP {http.request.remote}
                #header_up X-Forwarded-For {http.request.remote}
                #header_up X-Forwarded-Port {http.request.port}
                #header_up X-Forwarded-Proto {http.request.scheme}
                transport http {
                        tls
                        tls_insecure_skip_verify
                        }
                }

}
zabbix.stfd13.org {
        reverse_proxy 10.0.0.10:80
        redir / /zabbix
}

3. The problem I’m having:

Getting a 404 on the Websocket

4. Error messages and/or full log output:

f {name: "stream-socket", message: "Lost websocket connection - 1006, attempting to reconnect", details: undefined}
WebSocket connection to 'wss://geoevent.stfd13.org/arcgis/ws/services/STFD4-NetworkFleet-Stream/StreamServer/subscribe?token=uEz8UoWdem1GZmt9QJO7O5rzjfgel5AjONIXcrsIXqv5OfQEi5-jd0Os0gMKS44x0ZO0bolnISw0OvoqQNc9_RxLjxXKMe0TnTYXfuqQycSsDxQZ_Mng6pQNoP2dDZRAh7ETti6MNw9G2T0EslnM_C3PvLDMrG6rrkckenDCvDH0gVj76yMtYgM80PKeG9WGLO6BulfSPFZeTQiI8tsvDWNqngRHiChLj__O5BzfEcbBPjs0upK7Bq_emnZE8Gj2r4dhOf4v85_6DQlif8i6AOPvishMK737mF6xsRwo_RE.&outSR=102100' failed: Error during WebSocket handshake: Unexpected response code: 404

5. What I already tried:

Restarting Service & Rebooting

6. Links to relevant resources:

Hi @Robert_Crawford,

Caddy should be sending that request upstream to the websocket host. It shouldn’t be generating a 404 by itself. First thing to check is that the 404 isn’t coming from upstream.

Are you able to try with your client connecting directly to the websocket host at wss://10.0.0.42:6443?

1 Like

The application works behind the proxy?

The error though is
failed: Error during WebSocket handshake: Unexpected response code: 404

Are you getting the 404 when connecting directly to the websocket instead of via the Caddy proxy?

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.