Xiaochen Wang

Results 287 comments of Xiaochen Wang

And also note that if the proxy_connect module fails to resolve the proxied backend (DNS resolve), you may receive a 503 status code as a response. In such cases, the...

It seemed that you had not configured proxy_connect module in your configuration file. And 400 bad request record from your access.log means that proxy_connect is not configured or built into...

phrase from RFC as following 1. Client sends HEADERS frame (:method = `CONNECT`, :authority: `[:]`) to the proxy server. 2. The proxy server establishes a connection with backend server, then...

HINT: How upstream reads request body from http/2 DATA frame: If we dont wanna modify the http/2 logic in the nginx core, we need to use the logic of upstream...

source notes for http/2 request body reading logic( DATA frame receiving logic): ``` ------ http/2 connection handler: rev->handler = ngx_http_v2_read_handler; -> ngx_http_v2_state_head -> ngx_http_v2_state_data c->write->handler = ngx_http_v2_write_handler; ------ ngx_http_v2_state_read_data ->...

If proxy_connect does not connect to backend server and DATA frame from client has already been sent to nginx, the logic backtrace is as following: 1. header frame + data...

for http2 & upstream: * read upstream and send data to downstream: ngx_http_upstream_process_non_buffered_request * read downstream and send data to upstream: ngx_http_upstream_read_request_handler->ngx_http_upstream_send_request

Unfortunately, there is no low-level IO operation API of `c->recv()/send()` provided in nginx's HTTPv2 implementation. So if we want to support http/2 CONNECT tunnel, we need to use request_body API...

> Question: Is the hard part downstream or upstream? Would it be easier if only the downstream-connection is http2 (so eavesdroppers think it is http2)? E.g.: Client -> http2:connect ->...

I hope others can help with the Debian package. 👏 However, I can assist in tracking down building or testing issues by opening an issue. Just let me know if...