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

相关文章
|
Web App开发 Rust 应用服务中间件
在Nginx当中支持QUIC协议
Quick UDP Internet Connection(QUIC)协议是Google公司提出的基于UDP的高效可靠协议。有关协议的主要内容就不在本文过多描述了,本文主要是来讲一下,在Nginx当中如何去支持QUIC协议。 由于个人水平有限,如果哪里写的不对的地方,还请各位大佬们指正。
2660 0
在Nginx当中支持QUIC协议
|
4月前
|
运维 安全 API
当安全事件不再“靠人吼”:一文带你搞懂 SOAR 自动化响应实战
当安全事件不再“靠人吼”:一文带你搞懂 SOAR 自动化响应实战
435 10
|
1月前
|
存储 应用服务中间件 nginx
Nginx设置只允许Cloudflare IP访问后获取真实访客IP
本方案通过Nginx `map`指令智能识别真实访客IP:优先取`X-Forwarded-For`首IP,回退至`CF-Connecting-IP`,配合Cloudflare IP白名单,精准记录源IP,日志格式可定制,安全性与准确性兼备。(239字)
164 4
|
3月前
|
弹性计算 Linux 网络安全
阿里云服务器ECS远程连接的方法汇总(总有一种方式适合你)
阿里云ECS提供多种远程连接方式,推荐使用无需公网IP的Workbench、会话管理等安全便捷工具,支持免配置、免安装访问。传统SSH/RDP需配置公网IP与安全组,建议限制访问IP并修改默认端口。VNC适用于应急排查,无需公网即可通过控制台接入。优先选择高安全性方案,保障实例稳定运行。
|
8月前
|
前端开发 数据挖掘 数据库
如何开发供应商管理系统中的通知公告板块(附架构图+流程图+代码参考)
供应商管理系统中的通知公告模块是企业信息传递的关键环节。本文探讨了如何构建高效的通知公告板块,涵盖公告发布、管理、处理流程及数据分析,并提供开发技巧与常见问题解答,助力企业实现信息高效传达。
|
8月前
|
Linux 虚拟化 iOS开发
Debian 13 x86_64 OVF (sysin) - VMware 虚拟机模板
Debian 13 x86_64 OVF (sysin) - VMware 虚拟机模板
653 0
Debian 13 x86_64 OVF (sysin) - VMware 虚拟机模板
|
11月前
|
Linux 数据安全/隐私保护
使用Linux命令行接入无线网络Wi-Fi的示例。
现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
932 12
|
监控 UED
记一次HttpClient使用问题分析
【9月更文挑战第19天】在软件开发中,HttpClient 常用于发送 HTTP 请求,但可能遇到请求超时等问题。本文分析了一例间歇性超时现象,从网络连接、配置、服务器响应等方面排查,并提出调整配置、优化逻辑、增加重试及监控等解决方案,最终提升系统稳定性和用户体验。
692 7
|
监控 负载均衡 JavaScript
PM2 介绍
【10月更文挑战第11天】

热门文章

最新文章