Looks like there was a problem with a react app's reloading websocket thingie. So I decided to test.
Here is a random react app that I decied to try: https://github.com/ahfarmer/calculator
$ npm start
Without an upgrade config:
[2020-02-25 01:13:26.243][4407][debug][http] [source/common/http/conn_manager_impl.cc:731] [C8][S17729359102081406356] request headers complete (end_stream=false): ':authority', '192.168.1.59:3001' ':path', '/sockjs-node' ':method', 'GET' 'connection', 'Upgrade' 'pragma', 'no-cache' 'cache-control', 'no-cache' 'user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36' 'upgrade', 'websocket' 'origin', 'http://192.168.1.59:3001' 'sec-websocket-version', '13' 'accept-encoding', 'gzip, deflate' 'accept-language', 'en-US,en;q=0.9,ja;q=0.8,ca;q=0.7' 'sec-websocket-key', 'dXI0yvA/2pOHXIh5ZBqgfQ==' 'sec-websocket-extensions', 'permessage-deflate; client_max_window_bits'
[2020-02-25 01:13:26.243][4407][debug][http] [source/common/http/conn_manager_impl.cc:1417] [C8][S17729359102081406356] Sending local reply with details upgrade_failed [2020-02-25 01:13:26.243][4407][debug][http] [source/common/http/conn_manager_impl.cc:1615] [C8][S17729359102081406356] encoding headers via codec (end_stream=true): ':status', '403' 'date', 'Tue, 25 Feb 2020 06:13:26 GMT' 'server', 'envoy' 'connection', 'close'
With only the upgrade config... it works fine.