I tried a simple nginx port forward
location /debug-me/ {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_pass https://127.0.0.1:8081;
proxy_http_version 1.1;
}
I'm not sure if I botched the proxy configuration, or if debug-me needs something added to support proxying?
Connecting to debug-me server...debug-me: MalformedResponse (ResponseHead {responseCode = 301, responseMessage = "Moved Permanently", responseHeaders = [("Server","nginx/1.14.2"),("Date","Wed, 19 Aug 2020 15:02:36 GMT"),("Content-Type","text/html"),("Content-Length","185"),("Location","http://pivot.cs.unb.ca/debug-me/"),("Connection","keep-alive")]}) "Wrong response status or message."
Well, debug-me does not follow redirects, and it seems that the http proxy is adding one for some reason.
It looks like Network.Websockets.Client.runClientWith is where that is coming from, and the websockets library does not currently support redirs. Actually, that library implements https itself, which is a surprise to me. It seems it would need some work to support redirs.