You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm building an alternative implementation of a (mostly) decentralised networking protocol. This protocol consists of the following services:
Client (any HTTP client, could be curl or an application in any programming language)
Outway (plain HTTP server, acts as a reverse proxy to the Inway)
Inway (mTls HTTPS server, acts as a reverse proxy to a service)
Service (any HTTP/HTTPS endpoint)
The traffic flow is like this (going both ways):
flowchart LR
Client --plain HTTP 1.1--> Outway --HTTP 2 mTLS--> Inway --> Service
Loading
Both the Outway/Inway use warp for the server implementation and reqwest for the client in the reverse proxy. The configuration of reqwest is as follows:
I tried to verify this is not an issue with my reverse proxy implementation (which is very basic). To check this I used curl (with TLS client authentication) directly with the Inway. This works fine. So the following flow seems to work:
flowchart LR
Client --HTTP2 mTLS--> Inway --> Service
Loading
So it seems that this is an issue between the Outway and the Inway, although I'm not 100% sure.
The error I'm getting is BrokenPipe in hyper. This doesn't seem to happen when I either force http1 in the reqwest::ClientBuilder of the Outway or remove the request body stream. Not sure if it's relevant but this is how I stream the request body in the reverse proxy:
let stream = self.body.map(|buf| buf.map(|mut buf| buf.copy_to_bytes(buf.remaining())));
Trace logs (in the Inway with https://httpbin.org/anything as the service endpoint):
I'm building an alternative implementation of a (mostly) decentralised networking protocol. This protocol consists of the following services:
curl
or an application in any programming language)The traffic flow is like this (going both ways):
Both the Outway/Inway use warp for the server implementation and reqwest for the client in the reverse proxy. The configuration of reqwest is as follows:
Outway
Inway
I tried to verify this is not an issue with my reverse proxy implementation (which is very basic). To check this I used
curl
(with TLS client authentication) directly with the Inway. This works fine. So the following flow seems to work:So it seems that this is an issue between the Outway and the Inway, although I'm not 100% sure.
The error I'm getting is
BrokenPipe
inhyper
. This doesn't seem to happen when I either forcehttp1
in thereqwest::ClientBuilder
of the Outway or remove the request body stream. Not sure if it's relevant but this is how I stream the request body in the reverse proxy:Trace logs (in the Inway with
https://httpbin.org/anything
as the service endpoint):The text was updated successfully, but these errors were encountered: