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访问不了会出现意外的报错。

相关文章
|
2月前
|
监控 Kubernetes 调度
干货推荐:容器可观测新视角—SysOM 延时抖动监控助力定位业务抖动原因
为了解决这一挑战,本文将结合实战案例,介绍如何在 Kubernetes 环境中使用 ack-sysom-monitor Exporter 对内核延迟进行可视化分析与定位,帮助你快速识别问题根因,并高效缓解由延迟引发的业务抖动。
|
2月前
|
Java 关系型数据库 MySQL
基于springboot的二手物品交易系统
本研究聚焦二手交易平台的网络化转型,探讨其在社会经济快速发展背景下的必要性与意义。结合SpringBoot、Java、MySQL等技术,分析系统设计与实现路径,旨在提升平台管理效率、降低成本,推动二手交易向规范化、信息化发展,助力现代化服务体系建设。
|
2月前
|
JavaScript 前端开发 Java
基于Springboot的图书馆在线占座系统
针对高校图书馆座位资源紧张、管理低效问题,本文设计并实现基于SpringBoot的在线占座系统。系统采用B/S架构,结合MySQL、Vue等技术,实现座位查询、预约、签到等功能,提升资源利用率与管理效率,为学生提供公平便捷的使用体验。
|
2月前
|
人工智能 运维 监控
用 AI 做日志语义检索与异常摘要——不是为了炫技,是为了让 on-call 少掉几根头发
用 AI 做日志语义检索与异常摘要——不是为了炫技,是为了让 on-call 少掉几根头发
130 12
|
2月前
|
存储 人工智能 自然语言处理
LlamaIndex 深度实战:用《长安的荔枝》学会构建智能问答系统
本文深入浅出地讲解了RAG(检索增强生成)原理与LlamaIndex实战,通过《长安的荔枝》案例,从AI如何“读书”讲起,详解三大关键参数(chunk_size、top_k、overlap)对问答效果的影响,并结合真实实验展示不同配置下的回答质量差异。内容兼顾新手引导与进阶优化,帮助读者快速构建高效的文档问答系统。
553 22
LlamaIndex 深度实战:用《长安的荔枝》学会构建智能问答系统
|
Java API Android开发
Android 最新实现沉浸式状态栏的效果
Android 最新实现沉浸式状态栏的效果
555 0
|
2月前
|
弹性计算 网络安全 ice
阿里云 4核8G ECS 云服务器价格、实例规格、CPU处理器型号详解
阿里云 4 核 8G 云服务器提供多种 ECS 实例规格,搭配不同品牌的 CPU 处理器,收费方式包含包月、包年及按小时计费,实际费用会根据购买时长等因素有所调整。阿里云4核8G服务器配置价格,热门ECS实例、CPU型号及参考价格整理,云服务器ECS实例规格不同费用价格也不同,经济型e实例4核8G配置159元1个月、一年价格1578元一年、按小时收费0.45元1小时,云服务器ECS计算型c9i实例4核8G配置费用371元1个月、一年7.1折优惠3327元一年,注意这是参考价格实际购买有折扣券,整理阿里云ECS云服务器4核8G配置价格表,包括1个月、一年和1小时收费。
|
2月前
|
存储 vr&ar 虚拟化
实时云渲染与云桌面解析(三):核心异同点深度解析
云桌面与实时云渲染的技术对比分析:云桌面提供完整的远程虚拟桌面系统,适用于标准办公环境,而实时云渲染专门提供图形渲染算力服务。对于以3D应用为主的桌面/网页访问需求,实时云渲染可以替代少并发、低成本的云桌面技术方案。
|
27天前
|
弹性计算 Linux 网络安全
阿里云服务器ECS远程连接的方法汇总(总有一种方式适合你)
阿里云ECS提供多种远程连接方式,推荐使用无需公网IP的Workbench、会话管理等安全便捷工具,支持免配置、免安装访问。传统SSH/RDP需配置公网IP与安全组,建议限制访问IP并修改默认端口。VNC适用于应急排查,无需公网即可通过控制台接入。优先选择高安全性方案,保障实例稳定运行。