Support for Wordpress HTTP 3 QUIC

Now I changed the templates again and got this

2024/07/31 01:27:16 [emerg] 56331#56331: unknown "quic" variable
2024/07/31 01:27:16 [emerg] 56347#56347: unknown "quic" variable

It turns out that the configuration is no good at all). I will redo it. Thank you for helping to clarify.

1 Like

Replace this:

    add_header QUIC-Status $quic;

by this:

    add_header QUIC-Status $http3;

Well, the result is as follows:

  1. it didn’t help
ls -l /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress*

It helped for every site

v-rebuild-web-domain user opensource.angellive.ru

We get

:~# grep -R reuseport /etc/nginx/conf.d/domains/*angellive.ru*
/etc/nginx/conf.d/domains/quantumtransition.angellive.ru.ssl.conf:    listen      209.204.45.67:443 quic reuseport;

Likewise

root@rgkpwsgxjj:~# grep -Ri 'listen' /etc/nginx/conf.d/domains/*angellive.ru*
/etc/nginx/conf.d/domains/angellive.ru.conf:    listen      213.34.56.78:80;
/etc/nginx/conf.d/domains/angellive.ru.ssl.conf:        listen      213.34.56.78:443 ssl;
/etc/nginx/conf.d/domains/handmadeflowers.angellive.ru.conf:    listen      213.34.56.78:80;
/etc/nginx/conf.d/domains/handmadeflowers.angellive.ru.ssl.conf:    listen      213.34.56.78:443 ssl;
/etc/nginx/conf.d/domains/handmadeflowers.angellive.ru.ssl.conf:    listen      213.34.56.78:443 quic;
/etc/nginx/conf.d/domains/handmadeflowers.angellive.ru.ssl.conf:#    listen      [::]:443 ssl;
/etc/nginx/conf.d/domains/handmadeflowers.angellive.ru.ssl.conf:#    listen      [::]:443 quic;
/etc/nginx/conf.d/domains/hestia.angellive.ru.conf:     listen      213.34.56.78:80;
/etc/nginx/conf.d/domains/hestia.angellive.ru.ssl.conf: listen      213.34.56.78:443 ssl;
/etc/nginx/conf.d/domains/opensource.angellive.ru.conf: listen      213.34.56.78:80;
/etc/nginx/conf.d/domains/opensource.angellive.ru.ssl.conf:    listen      213.34.56.78:443 ssl;
/etc/nginx/conf.d/domains/opensource.angellive.ru.ssl.conf:    listen      213.34.56.78:443 quic;
/etc/nginx/conf.d/domains/opensource.angellive.ru.ssl.conf:#    listen      [::]:443 ssl;
/etc/nginx/conf.d/domains/opensource.angellive.ru.ssl.conf:#    listen      [::]:443 quic;
/etc/nginx/conf.d/domains/quantumtransition.angellive.ru.conf:  listen      213.34.56.78:80;
/etc/nginx/conf.d/domains/quantumtransition.angellive.ru.ssl.conf:    listen      213.34.56.78:443 ssl;
/etc/nginx/conf.d/domains/quantumtransition.angellive.ru.ssl.conf:    listen      213.34.56.78:443 quic reuseport;
/etc/nginx/conf.d/domains/quantumtransition.angellive.ru.ssl.conf:#    listen      [::]:443 ssl;
/etc/nginx/conf.d/domains/quantumtransition.angellive.ru.ssl.conf:#    listen      [::]:443 quic reuseport;

Config with reuseport



server {
    listen      %ip%:%web_ssl_port% ssl;
    listen      %ip%:%web_ssl_port% quic reuseport;
#    listen      [::]:%web_ssl_port% ssl;
#    listen      [::]:%web_ssl_port% quic reuseport;

    server_name %domain_idn% %alias_idn%;
    root        %sdocroot%;
    index       index.php index.html index.htm;
    access_log  /var/log/nginx/domains/%domain%.log combined;
    access_log  /var/log/nginx/domains/%domain%.bytes bytes;
    error_log   /var/log/nginx/domains/%domain%.error.log error;

    ssl_certificate     %ssl_pem%;
    ssl_certificate_key %ssl_key%;
    ssl_stapling        on;
    ssl_stapling_verify on;

    # TLS 1.3 0-RTT anti-replay
    if ($anti_replay = 307) { return 307 https://$host$request_uri; }
    if ($anti_replay = 425) { return 425; }

    include %home%/%user%/conf/web/%domain%/nginx.hsts.conf*;

   # Advertise HTTP/3 support
    add_header Alt-Svc 'h3=":443"; ma=86400';
    add_header QUIC-Status $http3;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        try_files $uri $uri/ /index.php?$args;
        log_not_found off;
        access_log off;
    }

    location ~ /\.(?!well-known\/) {
        deny all;
        return 404;
    }

    location = /xmlrpc.php {
        deny all;
        access_log off;
        log_not_found off;
        return 403;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;

        location ~* ^.+\.(ogg|ogv|svg|svgz|swf|eot|otf|woff|woff2|mov|mp3|mp4|webm|flv|ttf|rss|atom|jpg|jpeg|gif|png|webp|ico|bmp|mid|midi|wav|rtf|css|js|pdf|jar)$ {
            expires 365d;
            fastcgi_hide_header "Set-Cookie";
        }

        location ~* /(?:uploads|files)/.*.php$ {
            deny all;
            return 404;
        }

        location ~ [^/]\.php(/|$) {
            try_files $uri =404;
            include /etc/nginx/fastcgi_params;

            fastcgi_index index.php;
            fastcgi_param HTTP_EARLY_DATA $rfc_early_data if_not_empty;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

            fastcgi_pass %backend_lsnr%;

            include %home%/%user%/conf/web/%domain%/nginx.fastcgi_cache.conf*;

            if ($request_uri ~* "/wp-admin/|/wp-json/|wp-.*.php|xmlrpc.php|index.php|/store.*|/cart.*|/my-account.*|/checkout.*") {
                set $no_cache 1;
            }

            if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in|woocommerce_items_in_cart|woocommerce_cart_hash|PHPSESSID") {
                set $no_cache 1;
            }
        }
    }

    location /error/ {
        alias %home%/%user%/web/%domain%/document_errors/;
    }

    location /vstats/ {
        alias %home%/%user%/web/%domain%/stats/;
        include %home%/%user%/web/%domain%/stats/auth.conf*;
    }

    proxy_hide_header Upgrade;

    include /etc/nginx/conf.d/phpmyadmin.inc*;
    include /etc/nginx/conf.d/phppgadmin.inc*;
    include %home%/%user%/conf/web/%domain%/nginx.ssl.conf_*;
}

config on the same IP in the panel of another site is the same, but without reuseport
Uff seems to be all. Thank you all, suggestions for improvement are welcome)

1 Like

Then where are your templates and what are their names? I told to use wordpress* because in one of the screenshots you were using the template wordpress_handmade

Mmm, I did this a few times, but when typing, I didn’t see the result

grep -R reuseport /etc/nginx/conf.d/domains/*angellive.ru*

I got this output:

ls -l /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress*
-rw-r--r-- 1 root root 2814 мая 29 15:21 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress-disable-xmlrpc.stpl
-rw-r--r-- 1 root root 2466 мая 29 15:21 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress-disable-xmlrpc.tpl
-rw-r--r-- 1 root root 3325 июл 31 01:41 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress_handmade.stpl
-rw-r--r-- 1 root root 2242 июн 24 17:23 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress_handmade.tpl
-rw-r--r-- 1 root root 2949 мая 29 15:21 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress_mu_subdir.stpl
-rw-r--r-- 1 root root 2595 мая 29 15:21 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress_mu_subdir.tpl
-rw-r--r-- 1 root root 3326 июл 31 01:49 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress_opensourse.stpl
-rw-r--r-- 1 root root 2242 июн 24 17:23 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress_opensourse.tpl
-rw-r--r-- 1 root root 3348 июл 31 01:49 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress_quantum.stpl
-rw-r--r-- 1 root root 2245 июн 24 00:24 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress_quantum.tpl
-rw-r--r-- 1 root root 2715 мая 29 15:21 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress.stpl
-rw-r--r-- 1 root root 2361 мая 29 15:21 /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress.tpl

Then I applied it to every site, and everything changed

v-rebuild-web-domain user opensource.angellive.ru

To apply all the templates at once, you need to type the command and specify the user

v-rebuild-web-domains user

The command below only shows where the templates lie, but will not apply them.

ls -l /usr/local/hestia/data/templates/web/nginx/php-fpm/wordpress*

Hi all, could the creators of Hestia add the Wordpress QUIC Experimental template to version 1.9? Thanks

Hello everyone, and I’ll leave it here, QUIC will only function normally if you open UDP port 443, otherwise there will be no connection

ufw allow 443/udp #Для QUIC

I also created a file called http3-directive.conf and placed it in etc/nginx/conf.d, with the contents according to the official documentation.

http3 on;
1 Like

You don’t need to enable http3, it is enabled by default. With http2 you must enable it but not for http3.

Perhaps I misunderstood директивы
I’ll clean it up now)
I also think it is worth adding?
Чтобы разрешить GSO (Generic Segmentation Offloading):

quic_gso on;

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.