Skip to content

Strip option has no effect for websockets #330

@manos

Description

@manos

Hello!

I've just had a fun debugging session, and discovered:
When I have a service configured with strip=/foo, and it upgrades the connection, fabio is hitting the backend at /foo instead of /.

I was going to paste some tcpdump showing this, but it's just a verbose way of saying what I've said above :)

Running fabio 1.5.2.

Here are the headers fabio sent with the outbound request to the service:

GET /vertica-websocket-streamer/ HTTP/1.1
Host: 10.31.135.183
Connection: Upgrade
Forwarded: for=10.16.206.119; proto=ws; by=172.18.10.5; httpproto=http/1.1
Origin: http://fabio-dev:9998
Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits
Sec-Websocket-Key: hMmX3g/wxm2LMUnC3kuSrQ==
Sec-Websocket-Version: 13
Upgrade: websocket
X-Forwarded-For: 10.16.206.119
X-Forwarded-Port: 80
X-Forwarded-Prefix: /vertica-websocket-streamer
X-Forwarded-Proto: http
X-Real-Ip: 10.16.206.119

Oh, also, fabio isn't logging any of these requests. If I hit it without an Upgrade it will proxy and log the 400 response from the backend (it returns "expecting upgrade request"), but absolutely nothing is logged for upgraded requests - which in this case are returning 404, because the backend is expecting /.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions