On 07/11/2017 05:36 AM, Yann Ylavic wrote:
I think it's quite hazardous to use/allow ANY and would prefer the upgrade_method (worker->s->upgrade) to be a list of acceptable protocols.

I think both ANY *and* NONE are dangerous. Both of them turn
proxy_wstunnel into a generic TCP forwarder (and NONE does so without
any opt-in on the client's part).

The admin surely knows which protocol(s) the backend supports, the issue being that otherwise most backends will ignore the Upgrade and hence the connection will continue in normal HTTP (tunneled w/o any protocol checking).

+1. Even once we implement the protocol list, we should still
double-check that the protocol is actually upgraded before we start
forwarding back and forth.

IMO the Upgrade handling should be part of mod_proxy_http (not _wstunnel) and depend on whether or not the backend accepted it.

This I don't necessarily agree with as much... for now, Upgrade handling
belongs where it's needed, and if there are duplicate pieces of code, we
probably need to pull them into the core, not a different proxy module.

It was already discussed in [1], well, I can't say that the idea was unanimous at that time...

Yeah, I don't understand the turn that conversation took. We're talking
about a feature that can be used for reverse-proxying, and there's
nothing to CONNECT to.


Reply via email to