Testing HTTP/3 QUIC compatible with HestiaCP

Hi everybody, I’ve been trying to experiment with HTTP/3 since I saw it on cloudflare.
I am checking the main docs on https://quic.nginx.org but will post a guide once I figure it out for debian 10.
I think it’s a good swap for those of us using nginx + php-fpm since it’s supposed to bring a nice speed increase.

So far the steps I am seeing are

  1. Install prerequisites. Build essential, mercurial, libpcre, cmake, zlib1g-dev and a few others.

  2. Install BoringSSL

  3. Compile nginx-quic

  4. Replace current nginx with the one mentioned above and update the configs.

    cd /opt/
    #note below the forum will autoformat libpcre++ -dev you will need to fix it manually
    apt install mercurial build-essential libpcre3-dev libpcre3 libpcre+±dev zlib1g-dev golang cmake
    hg clone -b quic https://hg.nginx.org/nginx-quic
    git clone boringssl - Git at Google
    cd boringssl/
    mkdir build && cd build/
    cmake …
    make
    cd /opt/nginx-quic
    #usen este pastebin para el config porque falla el de abajo config de nginx - Pastebin.com
    ./auto/configure --with-debug --with-http_v3_module
    –with-cc-opt="-I…/boringssl/include"
    –with-ld-opt="-L…/boringssl/build/ssl
    -L…/boringssl/build/crypto" --with-http_v3_module
    –with-http_quic_module --with-stream_quic_module
    make

and that is where I am at so far. next should be running make install and testing it with the new config but I will update shortly when I can set up my environment properly and not break hestia :slight_smile:

next step should be swapping the executable on the service file
/etc/systemd/system/multi-user.target.wants/nginx.service
you would need to change the line
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
for
ExecStart=/usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf

then do a
systemctl daemon-reload

but when you restart nginx it will start throwing errors because the configuration file needs to be updated, mostly related to some lines that are not used anymore. I will try to debug that soon and we’ll see if with that we can have everything ready

3 Likes

ok I figured out how to make it work.
so nginx has to be compiled with this settings ./auto/configure --with-debug --with-http_v3_module \--with-cc-opt="-I.. - Pastebin.com
and then just replace the service file with the local nginx and restart.
as easy as possible! at least for now :slight_smile:

1 Like