Configurarea Protocolului Modern HTTP/3 și QUIC pe UDP în Nginx în Nginx

Criptare și Protocoale Moderne Nginx 1.25+ Oficial

Ghid pas cu pas pentru activarea standardului HTTP/3 și a protocolului QUIC în Nginx 1.25+: ascultare UDP pe portul 443, configurarea antetului Alt-Svc, negocierea conexiunilor și eliminarea fenomenului de Head-of-Line Blocking.

Sintaxă
listen 443 quic reuseport; add_header Alt-Svc 'h3=":443"; ma=86400'; quic_retry on;

Standardul HTTP/3 reprezintă cea mai importantă transformare a protocolului web din ultimii 25 de ani. În timp ce HTTP/1.1 și HTTP/2 sunt dependente de stiva TCP (suferind de latențe ridicate la stabilirea conexiunilor TLS și de blocaje Head-of-Line Blocking la pierderea de pachete pe rețele mobile), HTTP/3 rulează direct peste UDP folosind protocolul QUIC. Rezultatul este conectarea instantanee (0-RTT), reziliența la schimbarea rețelei de pe Wi-Fi pe date celulare (Connection Migration) și performanțe remarcabile pe dispozitive mobile.

Configurația completă pentru HTTP/3 în Nginx 1.25+
server {
    # 1. Ascultare standard pe TCP pentru HTTP/2 și HTTP/1.1:
    listen 443 ssl;
    # 2. Ascultare pe UDP pentru protocolul HTTP/3 QUIC (reuseport obligatoriu pe primul bloc):
    listen 443 quic reuseport;

    server_name www.dexblog.ro;

    # Certificate SSL/TLS (HTTP/3 impune TLS 1.3 obligatoriu!):
    ssl_certificate /etc/letsencrypt/live/dexblog.ro/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/dexblog.ro/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;

    # 3. Informarea browserului despre disponibilitatea HTTP/3 via antetul Alt-Svc:
    add_header Alt-Svc 'h3=":443"; ma=86400' always;

    # 4. Optimizări specifice QUIC:
    quic_retry on;
    ssl_early_data on; # Activează 0-RTT pentru reluarea ultra-rapidă a conexiunilor

    # (Opțional): Antet informativ de verificare:
    add_header X-Protocol $server_protocol always;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
}
Atenție la Firewall (UFW / iptables): Deoarece QUIC rulează peste UDP, asigurați-vă că ați deschis portul 443 și pe protocolul UDP în firewall: sudo ufw allow 443/udp! În caz contrar, conexiunile HTTP/3 vor eșua silențios și browserul va cădea pe HTTP/2.