I am trying to configure HAProxy to work with h2 backend using tcp load balancing mode:
listen 443pp
bind [redacted]:443 interface ens224
mode tcp
balance roundrobin
log global
source [redacted]
server backend02 [redacted]:8443 check send-proxy-v2
server backend03 [redacted]:8443 check send-proxy-v2
The backend is Nginx (serving a static file for testing purpose):
# nginx config:
server {
listen *:8443 ssl proxy_protocol ; # works
listen *:8443 ssl proxy_protocol http2; # does NOT work
server_name backend02-proxy-ssl;
ssl_certificate /etc/ssl/private/self-signed.crt;
ssl_certificate_key /etc/ssl/private/self-signed.key;
index index.html index.htm index.php;
access_log /var/log/nginx/ssl-backend02-proxy-ssl.access.log;
error_log /var/log/nginx/ssl-backend02-proxy-ssl.error.log;
location / {
root /var/www/html;
index index.html index.htm index.php;
}
}
Curl on the load balanced ip fails with this message when http2 is enabled in Nginx:
* Empty reply from server
The Nginx backend is responding to http2 request, tested with curl --haproxy-protocol -k https://[redacted]:8443
HAProxy version:
HAProxy version 2.4.16-1ppa1~focal 2022/04/29 - https://haproxy.org/
Status: long-term supported branch - will stop receiving fixes around Q2 2026.
Known bugs: http://www.haproxy.org/bugs/bugs-2.4.16.html
Running on: Linux 5.4.0-110-generic #124-Ubuntu SMP Thu Apr 14 19:46:19 UTC 2022 x86_64
Nginx version:
nginx version: nginx/1.18.0 (Ubuntu)
OS is Ubuntu 20.04.
1 post - 1 participant