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月前
|
人工智能 运维 监控
用 AI 做日志语义检索与异常摘要——不是为了炫技,是为了让 on-call 少掉几根头发
用 AI 做日志语义检索与异常摘要——不是为了炫技,是为了让 on-call 少掉几根头发
125 12
|
1月前
|
监控 Kubernetes 调度
干货推荐:容器可观测新视角—SysOM 延时抖动监控助力定位业务抖动原因
为了解决这一挑战,本文将结合实战案例,介绍如何在 Kubernetes 环境中使用 ack-sysom-monitor Exporter 对内核延迟进行可视化分析与定位,帮助你快速识别问题根因,并高效缓解由延迟引发的业务抖动。
|
1月前
|
Java 关系型数据库 MySQL
基于springboot的二手物品交易系统
本研究聚焦二手交易平台的网络化转型,探讨其在社会经济快速发展背景下的必要性与意义。结合SpringBoot、Java、MySQL等技术,分析系统设计与实现路径,旨在提升平台管理效率、降低成本,推动二手交易向规范化、信息化发展,助力现代化服务体系建设。
|
1月前
|
JavaScript 前端开发 Java
基于Springboot的图书馆在线占座系统
针对高校图书馆座位资源紧张、管理低效问题,本文设计并实现基于SpringBoot的在线占座系统。系统采用B/S架构,结合MySQL、Vue等技术,实现座位查询、预约、签到等功能,提升资源利用率与管理效率,为学生提供公平便捷的使用体验。
|
30天前
|
机器学习/深度学习 人工智能 数据可视化
构建AI智能体:七十三、模型的成绩单:一文读懂损失函数,看懂AI如何学习
本文系统介绍了损失函数在机器学习中的核心作用。首先通过类比教学场景,阐释损失函数作为模型"导师"的重要性。随后详细解析了回归任务中的均方误差(MSE)和平均绝对误差(MAE),通过房价预测案例展示了它们对误差的不同处理方式。在分类任务部分,重点讲解了二分类和多分类交叉熵损失函数,使用垃圾邮件识别和图像分类等实例,说明这些函数如何通过概率计算来评估预测准确性。文章通过可视化图表直观呈现了不同损失函数的特点,并强调损失函数作为模型优化的指南针,其设计直接影响学习效果。
250 20
|
18天前
|
人工智能 API 开发者
2026年 AI LLM API 开发趋势:技术、架构与应用深度探讨
2026年,LLM API已成为企业开发核心。本文详解API调用、Prompt工程、多轮对话与流式输出,结合聚合平台如poloapi.top,助力开发者高效构建AI应用,把握技术前沿。
|
30天前
|
存储 文字识别 数据可视化
实用代码工具:Python打造PDF选区OCR / 截图批量处理工具(支持手动/全自动模式)
一款基于Python的PDF区域OCR与截图工具,支持精准框选、文字识别、图片截取及Excel一键导出。内置手动审核与全自动批量处理模式,结合PyMuPDF、easyocr等技术,实现高效、可视化的PDF数据提取,适用于发票、报表等场景,显著提升办公效率。
261 11
|
1月前
|
Kubernetes 负载均衡 网络协议
裸机 Kubernetes 负载均衡全景:从 MetalLB、Service 到 Ingress,再到云厂商实现原理
本文系统解析裸机Kubernetes中MetalLB、Service与Ingress的协作机制,深入剖析LoadBalancer实现原理,对比云厂商方案,揭示高可用、IP稳定与网络分层真相,助你构建媲美公有云的生产级流量入口体系。
|
30天前
|
弹性计算 运维 Java
假期用阿里云服务器一键部署我的世界/幻兽帕鲁等游戏联机服务器教程
假期里和好友联机畅玩《我的世界》《幻兽帕鲁》等游戏,是不少玩家的休闲选择。自己搭建专属联机服务器,不仅能保证游玩私密性,还能自定义游戏规则,提升体验感。阿里云提供的一键部署服务,大幅简化了操作流程,即使是零基础的新人,也能在几分钟内完成部署。本文将整合最新的操作指南,详细拆解部署全流程,同时覆盖后续运维的核心要点。
|
1月前
|
Kubernetes Cloud Native Nacos
MCP 网关实战:基于 Higress + Nacos 的零代码工具扩展方案
本文会围绕如何基于 Higress 和 Nacos 的 docker 镜像在 K8s 集群上进行分角色部署。
349 42