Debian 11.1 安装Nginx 并开启HTTP3 详细教程

简介: 本文介绍如何在Linux系统中从源码编译安装支持HTTP/3的Nginx 1.25.5。涵盖系统更新、依赖安装、源码下载、配置编译参数(含HTTP/3模块)、安装及验证全过程,并提供启用HTTP/2与HTTP/3共存的nginx.conf配置示例,确保兼容性。最后提醒开放云服务器安全组的TCP/UDP 443端口以支持QUIC协议。
  1. 系统更新

    sudo apt-get update 
    sudo apt-get upgrade -y
    
  2. 安装基础依赖
    sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev build-essential -y

  3. 补全HTTP/3依赖
    sudo apt-get install libnghttp2-dev -y

  4. 下载Nginx 1.25.5源码(HTTP3 仅支持Nginx-1.25.X以上 根据自己的需求来)
    wget http://nginx.org/download/nginx-1.25.5.tar.gz
    tar -zxvf nginx-1.25.5.tar.gz
    cd nginx-1.25.5
    
  5. 配置编译参数(保留你原有的参数,确保--with-http_v3_module存在)
    ./configure \
     --prefix=/usr/local/nginx \
     --with-http_ssl_module \
     --with-http_v2_module \
     --with-http_v3_module \
     --with-http_realip_module \
     --with-http_addition_module \
     --with-http_sub_module \
     --with-http_dav_module \
     --with-http_flv_module \
     --with-http_mp4_module \
     --with-http_gunzip_module \
     --with-http_gzip_static_module \
     --with-http_random_index_module \
     --with-http_secure_link_module \
     --with-http_stub_status_module \
     --with-http_auth_request_module \
     --with-threads \
     --with-stream \
     --with-stream_ssl_module \
     --with-stream_ssl_preread_module \
     --with-file-aio \
     --with-compat
    
  6. 编译并安装

    make
    sudo make install
    
  7. 创建全局符号链接
    sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

  8. 验证HTTP/3模块是否编译成功(执行后能看到http_v3_module即成功)
    nginx -V 2>&1 | grep http_v3_module

  9. 启动命令、停止命令、重新加载配置命令

nginx

nginx -s stop

nginx -s reload

Nginx.conf 配置代码如下 给默认的配置删除替换 仅做参考 也可以直接使用 基本按照步骤都会成功 并且可以HTTP3、HTTP2同时开启 以免有些用户浏览器不支持HTTP3 这样就会自动切换至HTTP2 以免造成访问不了的情况

# user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;
    access_log off;
    error_log off;


    sendfile        on;
    keepalive_timeout  65;


    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 6;
    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;

    # 80端口强制跳转到HTTPS
    server {
        listen       80;
        server_name  你的域名 www.的域名;  # 替换成实际域名
        rewrite ^(.*)$ https://$host$1 permanent;
    }

    # HTTPS + HTTP2 + HTTP3 核心配置
    server {
        # 监听443端口(TCP+UDP),开启QUIC/HTTP3
        listen 443 ssl;
        # http2 on;  // 需要HTTP2和HTTP3一起运行的可以给注释去掉
        listen 443 quic reuseport;

        server_name  你的域名 www.你的域名;  # 替换成实际域名

        # SSL证书配置(替换成你的真实SSL证书路径)
        ssl_certificate      /usr/local/nginx/conf/cert/fullchain.pem;  # 证书公钥
        ssl_certificate_key  /usr/local/nginx/conf/cert/privkey.key;    # 证书私钥


        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:!MD5;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;

        http3 on;
        add_header Alt-Svc 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000';
        add_header Strict-Transport-Security "max-age=31536000" always;


        location / {
            root   /usr/local/nginx/html;
            index  index.html index.htm;
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }


        location ~ /\.ht {
            deny  all;
        }
    }
}

弄好之后 需要在云厂商的云服务器的安全组里面确保 自定义 TCP 443、自定义 UDP 443 这两个是开着的,自定义 UDP 443 没有就手动增加,这两个不开 HTTP3访问不了会出现意外的报错。

相关文章
|
1月前
|
监控 网络协议 安全
《DNS解析+HTTPS配置:网站加密访问从0到1深度解析》
本文聚焦HTTPS配置与DNS解析的协同逻辑,拆解二者从基础部署到进阶优化的全流程实践。文章指出,DNS解析需根据服务器部署模式选择A记录或CNAME记录,通过动态调整TTL值、开启DNSSEC与多线路解析,提升解析精准度与稳定性;HTTPS配置核心在于构建加密信任体系,需按场景选型证书,保障证书链完整,优化加密套件并做好生命周期管理。二者协同可通过配置HSTS记录、结合CDN实现全链路加密与加速。此外,还分享了OCSP Stapling、SAN证书应用等进阶技巧,强调配置后需通过多维度验证与“监控-优化”闭环维护,帮助开发者构建安全、高效、稳定的网站访问链路。
144 8
|
1月前
|
人工智能 运维 监控
用 AI 做日志语义检索与异常摘要——不是为了炫技,是为了让 on-call 少掉几根头发
用 AI 做日志语义检索与异常摘要——不是为了炫技,是为了让 on-call 少掉几根头发
121 12
|
9天前
|
Python
用Python列表推导式,告别繁琐循环
用Python列表推导式,告别繁琐循环
149 105
|
9天前
|
数据采集 API 数据处理
当Python不再“排队”:初探异步编程的魔力
当Python不再“排队”:初探异步编程的魔力
168 106
|
9天前
|
缓存 API Python
Python 3.9+ 新特性:字典合并的优雅之道
Python 3.9+ 新特性:字典合并的优雅之道
263 137
|
1月前
|
监控 Kubernetes 调度
干货推荐:容器可观测新视角—SysOM 延时抖动监控助力定位业务抖动原因
为了解决这一挑战,本文将结合实战案例,介绍如何在 Kubernetes 环境中使用 ack-sysom-monitor Exporter 对内核延迟进行可视化分析与定位,帮助你快速识别问题根因,并高效缓解由延迟引发的业务抖动。
|
21天前
|
存储 人工智能 缓存
阿里云对象存储OSS按量使用达标返券活动,消费达标报名即返等额代金券,用50元返50元
阿里云对象存储OSS推出专属代金券了,开通按量付费,消费达标报名即返等额代金券,用多少返多少。按小时使用对象存储 OSS 达到门槛,返对应代金券,满10元返10元,满50元返50元,灵活省钱又高效。适合互联网多媒体、大数据分析、AI 应用、数据归档等场景。
|
1月前
|
存储 vr&ar 虚拟化
实时云渲染与云桌面解析(三):核心异同点深度解析
云桌面与实时云渲染的技术对比分析:云桌面提供完整的远程虚拟桌面系统,适用于标准办公环境,而实时云渲染专门提供图形渲染算力服务。对于以3D应用为主的桌面/网页访问需求,实时云渲染可以替代少并发、低成本的云桌面技术方案。
|
1月前
|
存储 弹性计算 固态存储
阿里云服务器租用价格:实例配置、带宽、云盘收费标准与云服务器活动价格参考
对于初次选购阿里云服务器的用户而言,云服务器的收费标准与活动价格是大家最为关注的问题,而在实际选购中,通常都是选择2核4G、4核8G、8核16G,2核8G、4核16G、8核32G,2核16G、4核32G、8核64G这些热门配置。本文为大家整理了阿里云服务器的收费模式,实例与配置收费标准,带宽与云盘收费标准,以及2核4G、4核8G、2核8G、4核16G、8核32G,2核16G等热门配置当下活动价格情况,以供大家参考。
265 20
|
1月前
|
Java 关系型数据库 MySQL
基于springboot的二手物品交易系统
本研究聚焦二手交易平台的网络化转型,探讨其在社会经济快速发展背景下的必要性与意义。结合SpringBoot、Java、MySQL等技术,分析系统设计与实现路径,旨在提升平台管理效率、降低成本,推动二手交易向规范化、信息化发展,助力现代化服务体系建设。