bneradt commented on issue #12175:
URL: 
https://github.com/apache/trafficserver/issues/12175#issuecomment-2805936162

   > Anyone tried forward proxying with HTTP/2 traffic with latest release 
10.2.0 ? If yes, please share your configuration please. Thanks.
   
   @khchoy : we use HTTP/2 to origin with ATS as a **reverse** proxy. Setting 
[proxy.config.ssl.client.alpn_protocols](https://docs.trafficserver.apache.org/en/latest/admin-guide/files/records.yaml.en.html#proxy-config-ssl-client-alpn-protocols)
 should be all you need to start using HTTP/2 to origin. 
   
   ```
   CONFIG proxy.config.ssl.client.alpn_protocols STRING h2,http/1.1
   ```
   
   For diagnostic purposes, adding `o_http_version="%<sqpv>"` to your 
[logging.yaml](https://docs.trafficserver.apache.org/en/latest/admin-guide/files/logging.yaml.en.html)
 config is helpful. This will add the origin server protocol to your 
transaction logs so you can verify easily whether HTTP/2 to origin is being 
used and for which origin servers.
   
   Here are some tweaks to various configurations we have used to optimize 
HTTP/2 to origin traffic. Some of these might be specific to the traffic we are 
proxying, but I'll record it here in case it's helpful:
   
   * Set the incoming flow control policy to `1`.  The default window size is 
65535 and with many concurrent active streams the default was over-throttling 
the post body setting and causing timeouts. `CONFIG 
proxy.config.http2.flow_control.policy_in INT 1`
   * Set the outgoing flow control policy to `2`. This allows the outgoing 
window size to adjust dynamically with the number of concurrent streams. 
`CONFIG proxy.config.http2.flow_control.policy_out INT 2`
   * Reduced the concurrent stream count.  The default is 100.  For very active 
streams, a lower number seemed to work better.  `CONFIG 
proxy.config.http2.max_concurrent_streams_in INT 40`
   * With the window sufficiently opened up, the following may not be 
necessary.  The throttling logic was triggering and closing the connection 
because the window update were too small compared to the default value of 
2560.00 `CONFIG proxy.config.http2.min_avg_window_update FLOAT 2.0`
   *  By default the `proxy.config.http2.active_timeout_in` is `0` (disabled). 
Keep it that or set it to a large value, otherwise long-lived active sessions 
will be disabled.
   * For similar reasons, ensure that 
`proxy.config.net.default_inactivity_timeout` is kept large as well.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to