<div dir="ltr">Hello, there<br><br>I tried to test the HTTP/3 (QUIC) with nginx-quic in several days.<br>But I couldn't test HTTP/3 (QUIC).<br><br>I built the quic branch of nginx-quic repo according to README of that repo.<br>The configuration options follows as below:<br>$ ./auto/configure --prefix=/etc/nginx \<br>                 --sbin-path=/usr/sbin/nginx \<br>                 --conf-path=/etc/nginx/nginx.conf \<br>                 --pid-path=/var/run/nginx.pid \<br>                 --error-log-path=/var/log/nginx/error.log \<br>                 --http-log-path=/var/log/nginx/access.log \<br>                 --with-debug \<br>                 --with-http_v2_module --with-http_ssl_module \<br>                 --with-http_v3_module --with-http_quic_module \<br>                 --with-stream_quic_module \<br>                 --with-cc-opt="-I../boringssl/include" \<br>                 --with-ld-opt="-L../boringssl/build/ssl \<br>                 -L../boringssl/build/crypto"<br>$ make<br><br>To install the nginx-quic, I installed the nginx 1.19.6 package on Ubuntu 18.04 and replaced the nginx binary with the nginx-quic:<br>$ sudo cp objs/nginx /usr/sbin/<br><br>I configured that the nginx-quic works as load-balancer of HTTPS:<br>HTTPS -> nginx-quic (7443 port) -> Apache2 (80 port) -> Apache Tomcat (8080 port)<br><br>The configuration file (nginx.conf) follows as below:<br><br>user  nginx;<br>worker_processes  auto;<br><br>events {<br>    worker_connections  1024;<br>}<br><br>http {<br>    log_format quic '$remote_addr - $remote_user [$time_local] '<br>                    '"$request" $status $body_bytes_sent '<br>                    '"$http_referer" "$http_user_agent" "$quic" "$http3"';<br><br>    access_log /var/log/nginx/access.log quic;<br>    error_log  /var/log/nginx/error.log debug;<br><br>    server {<br><br>        listen 7443 http3 reuseport; # Enable HTTP/3.<br>        listen 7443 ssl; # Enable HTTP/1.1 (optional).<br><br>        ssl_certificate      /home/ubuntu/andrey/http3/example-fullchain.pem;<br>        ssl_certificate_key  /etc/ssl/private/example.key;<br>        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;<br><br>        location / {<br>            add_header alt-svc '$http3=":7443"; ma=86400'; # Advertise that QUIC is available<br>            add_header QUIC-Status $quic; # Sent when QUIC was used<br><br>            proxy_pass <a href="http://backend1">http://backend1</a>;<br>        }<br>    }<br><br>    server {<br>        listen 8443 ssl http2;<br><br>        ssl_certificate      /home/ubuntu/andrey/http3/example-fullchain.pem;<br>        ssl_certificate_key  /etc/ssl/private/example.key;<br>        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;<br><br>        location / {<br>            proxy_pass <a href="http://backend2">http://backend2</a>;<br>        }<br>    }<br><br>    upstream backend1 {<br>        ip_hash;<br>        server localhost max_fails=3 fail_timeout=30s;<br>    }<br><br>    upstream backend2 {<br>        ip_hash;<br>        server localhost max_fails=3 fail_timeout=30s;<br>    }<br>}<br><br>I opened UDP 7443 port on the cloud server (AWS).<br><br>I tested HTTP/3 (QUIC) with the client tools (neqo-client, curl-http3) and the browsers (Firefox 85 and Chrome 88) according to <a href="https://quic.nginx.org/readme.html">https://quic.nginx.org/readme.html</a>.<br>I got the right result with the client tools, but I didn't get the right result with the browsers.<br><br>When connecting 7443 port with the browsers, I get the HTTP/1.1 now.<br>When connecting 8443 port with the browsers, I get the HTTP/2 now.<br><br>I hope any suggestions and help.<br>Thanks.<br></div>