宝塔编译Nginx开启HTTP/3.0+Brotli

这篇具有很好参考价值的文章主要介绍了宝塔编译Nginx开启HTTP/3.0+Brotli。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        nginx的“quic”分支中开发的代码已合并到nginx主线中,并且自1.25.0发布以来一直是nginx的一部分。目前QUIC和HTTP / 3支持是实验性的,需要注意的是使用提供QUIC支持的SSL库来构建nginx。

1、创建文件夹(自定义路径)

在/www/server/目录下创建文件夹,例如:命名为nginxmodel

宝塔编译Nginx开启HTTP/3.0+Brotli,宝塔面板,nginx

2、Nginx源码

下载源码并解压到/www/server/nginxmodel文件夹中

nginx下载官网https://nginx.org/en/download.html

3、Brotli压缩算法源码

在/www/server/nginxmodel文件夹中运行git命令

git clone --recursive https://github.com/google/ngx_brotli.git

4、QuicTLS源码

git clone --recursive https://github.com/quictls/openssl.git

5、获取宝塔Nginx的编译参数

/www/server/nginx/sbin/nginx -V

显示结果

nginx version: nginx/1.24.0
built by gcc 12.2.0 (Ubuntu 12.2.0-17ubuntu1) 
built with OpenSSL 1.1.1q  5 Jul 2022
TLS SNI support enabled
configure arguments: 
--user=www --group=www --prefix=/www/server/nginx 
--add-module=/www/server/nginx/src/ngx_devel_kit 
--add-module=/www/server/nginx/src/lua_nginx_module 
--add-module=/www/server/nginx/src/ngx_cache_purge 
--with-openssl=/www/server/nginx/src/openssl 
--with-pcre=pcre-8.43 
--with-http_v2_module 
--with-stream 
--with-stream_ssl_module 
--with-stream_ssl_preread_module 
--with-http_stub_status_module 
--with-http_ssl_module 
--with-http_image_filter_module 
--with-http_gzip_static_module 
--with-http_gunzip_module 
--with-ipv6 
--with-http_sub_module 
--with-http_flv_module 
--with-http_addition_module 
--with-http_realip_module 
--with-http_mp4_module 
--add-module=/www/server/nginx/src/ngx_http_substitutions_filter_module-master 
--with-ld-opt=-Wl,-E 
--with-cc-opt=-Wno-error 
--with-ld-opt=-ljemalloc 
--with-http_dav_module 
--add-module=/www/server/nginx/src/nginx-dav-ext-module

6、Pcre源码

使用Lua环境使用lua-nginx-module和ngx_devel_kit模块请选Pcre,否则选用最新的Pcre2。

pcre下载https://sourceforge.net/projects/pcre/files/pcre/8.45/

pcre2下载https://github.com/PCRE2Project/pcre2/releases

7、Nginx第三方模块源码(自选)

Nginx官网收录第三方模块列表大全https://www.nginx.com/resources/wiki/modules/(1)lua-nginx-module

git clone https://github.com/openresty/lua-nginx-module.git

        依赖模块ngx_devel_kit

git clone https://github.com/vision5/ngx_devel_kit.git

(2)ngx_cache_purge【缓存清除】

git clone https://github.com/FRiCKLE/ngx_cache_purge.git

(3)ngx_http_substitutions_filter_module【正则表达式和固定字符串替换nginx】

git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git

(4)nginx-dav-ext-module【WebDAV协议扩展】

git clone https://github.com/arut/nginx-dav-ext-module.git

(5)nginx-http-concat【阿里的请求合并,非必选】

        需要在URL中使用??才生效,例如:example.com/??style1.css,style2.css,foo/style3.css

git clone https://github.com/alibaba/nginx-http-concat.git

(6)ngx_pagespeed【谷歌页面性能优化,已停更,nginx1.23起不兼容】

wget https://github.com/apache/incubator-pagespeed-ngx/archive/v1.13.35.2-stable.zip
unzip v1.13.35.2-stable.zip
cd incubator-pagespeed-ngx-1.13.35.2-stable
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz
tar -xzvf 1.13.35.2-x64.tar.gz

8、编译Nginx

设置root用户的lua临时环境变量(不用Lua可以忽略)

sudo su
export LUAJIT_LIB=/usr/local/lib/
export LUAJIT_INC=/usr/local/include/luajit-2.1/
export LD_LIBRARY_PATH=$LUAJIT_LIB

进入nginx源码目录运行配置(以下的--add-module仅供参考,可自行添加)

./configure --user=www --group=www --prefix=/www/server/nginx \
--with-openssl=/www/server/nginxmodel/openssl \
--with-pcre=/www/server/nginxmodel/pcre2 \
--with-http_v2_module \
--with-stream \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_image_filter_module \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_addition_module \
--with-http_realip_module \
--with-http_mp4_module \
--with-ld-opt=-Wl,-E \
--with-cc-opt=-Wno-error \
--with-ld-opt=-ljemalloc \
--with-http_dav_module \
--with-http_v3_module \
--add-module=/www/server/nginxmodel/ngx_cache_purge \
--add-module=/www/server/nginxmodel/ngx_http_substitutions_filter_module \
--add-module=/www/server/nginxmodel/nginx-dav-ext-module \
--add-module=/www/server/nginxmodel/ngx_brotli \
--add-module=/www/server/nginxmodel/nginx-http-concat

​然后在nginx目录下运行make就可以开始编译了。

make

9、替换原本的Nginx(Nginx平滑升级)

使用以下命令替换原本的Nginx

mv /www/server/nginx/sbin/nginx{,.bak} # 备份原本的Nginx文件
cp objs/nginx /www/server/nginx/sbin
make upgrade

10、开启网站HTTP/3.0+Brotli

修改网站配置文件,加入以下内容:

listen 443 ssl http2; # 代表开启HTTP/2
listen 443 quic; # 代表开启HTTP/3
ssl_early_data on; # 开启0-RTT
add_header Alt-Svc 'h3=":443"; ma=86400'; # 通知浏览器可以使用HTTP/3
ssl_protocols TLSv1.3; #HTTP/3需要TLSv1.3支持

brotli on; #启用
brotli_comp_level 6; #压缩等级,默认6,最高11,太高的压缩水平可能需要更多的CPU
brotli_min_length 1k; #指定压缩数据的最小长度,只有大于或等于最小长度才会对其压缩。这里指定1k
brotli_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/json image/svg application/font-woff application/vnd.ms-fontobject application/vnd.apple.mpegurl image/x-icon image/jpeg image/gif image/png image/bmp; #指定允许进行压缩类型
brotli_static always; #是否允许查找预处理好的、以.br结尾的压缩文件,可选值为on、off、always
brotli_window 512k; #窗口值,默认值为512k

11、开放443端口

1、Alt-Svc响应头(替代服务指令)

        协议一定要选TCP/UDP,浏览器先以TCP方式访问服务器,获取Alt-Svc响应头才切换HTTP/3.0。其目的是引导客户端使用HTTP/3.0进行后续资源获取。

2、DNS HTTPS记录触发浏览器QUIC

        可在域名解析中添加HTTPS记录,如 domain.com. alpn="h3,h2" ipv4hint="1.2.3.4" ipv6hint="::1" port="80"文章来源地址https://www.toymoban.com/news/detail-744331.html

属性名 说明
alpn HTTP协议支持
ipv4hint IPv4解析地址
ipv6hint IPv6解析地址
port 业务端口

到了这里,关于宝塔编译Nginx开启HTTP/3.0+Brotli的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 让您的Nginx支持Http 3.0 协议

    Http 3.0 其实从最开设到正式的使用,已经过去了不少时间了,这块也是关系到我们现在数据安全一块很重要的发展,后续我们应该不在会有明文加密的协议的存在了吧,只是在加密的基础上,不断的升级现在的加密方法与技术升级,从而更高的保障我们的数据传输的高效与安

    2024年02月10日
    浏览(46)
  • 宝塔面板迁移错误:nginx: [emerg] unknown “connection_upgrade“ variablenginx: configuration file /www/server/

    具体报错如下: 在宝塔面板使用API一件迁移,发现大部分网站都迁移错误。 文字提示: 失败: 站点[xxx.xxx.xxx]创建失败, ERROR: 检测到配置文件有错误,请先排除后再操作 nginx: [emerg] unknown \\\"connection_upgrade\\\" variable nginx: configuration file /www/server/nginx/conf/nginx.conf test failed 解决方案:

    2024年01月21日
    浏览(78)
  • 内网穿透NPS和宝塔Nginx配合使用,开启SSL访问本地局域网网络

    并非为了教学,仅供自己记录,方便下次用。所以内容不会刻意花时间写的很细节详细。 1. 服务器NPS配置 NPS install安装后,配置文件会在其他位置,通过是 /etc/nps/nps.conf 目录。 找到进行修改,主要修改的是 http_proxy_port 和 https_proxy_port ,它们使用的端口是80和443,肯定是和

    2024年02月10日
    浏览(50)
  • nginx集成brotli压缩算法

    本文于2017年2月中旬完成,发布在个人博客网站上。 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。 Google开源Brotli压缩算法 Brotli是一种全新的数据格式,可以提供比Zopfli高20-26%的压缩比。 在caniuse网站查询当前主流浏览器对brotli算法的

    2024年02月02日
    浏览(28)
  • nginx 开启https时反向代理http服务的问题

    当我们用nginx开启https时,反向代理一个本地的http服务,会遭遇跨域问题,报错 strict-origin-when-cross-origin ,导致很多资源无法加载。 这时只要在反向代理部分的配置文件中加入这一条语句即可:

    2024年02月14日
    浏览(43)
  • nginx开启http2导致的服务验证码不可用问题

    问题描述: 新搭建了一套开源的系统。通过nginx做了https反向代理后无法显示验证码。 具体报错: Uncaught TypeError: Cannot read properties of null (reading ‘property’) 点击报错后跳转到方法: xhr.getAllResponseHeaders() 问题就出在这个方法,但不知识具体原因。 通过做实验方法排除。 新搭建

    2024年02月12日
    浏览(38)
  • 编译Nginx配置QUIC/HTTP3.0

    1. 安装 BoringSSL 2.安装ngx_brotli 3. 安装Nginx 4. 配置Nginx - 配置域名 - 配置文件内容: - 测试配置并重启Nginx  5.验证 HTTP3 是否生效 打开这个https://http3.wcode.net/ 输入网址即可知道效果

    2024年04月12日
    浏览(35)
  • 宝塔Linux面板安装MySQL数据库,并且开启远程链接

    1.宝塔面板【软件商店】-【应用搜索】,搜索MySQL,然后点击安装想要的版本,我这边是安装的5.6版  2. 安装完后重置数据库管理员密码  3.Navicat Premium 15连接数据库  4.外网navicat工具无法连接数据库的处理办法 4.1输入 mysql -u root -p  后回车,输入密码,密码就是第二步重置的

    2024年02月04日
    浏览(97)
  • 宝塔面板linux在终端使用命令开启服务保持服务不关闭

    我们经常在宝塔面板终端开启服务(比如socket等服务时),如果关闭面板标签页或者关闭终端,服务也随之关闭了,要保持服务一直运行,就需要把终端进程放在linux后台执行,方法如下: 1、先Ctrl+z,将命令保持挂载,并且能够继续在终端输入其他命令;而且还可以看到该服

    2024年02月09日
    浏览(51)
  • NGINX编译ngx_http_proxy_connect_module及做正向代理

    1、下载NGINX(网址:http://nginx.org/download/ 当前文档使用版本为1.22.1)及ngx_http_proxy_connect_module模块 [root@localhost work]# tar xzf nginx-1.22.1.tar.gz [root@localhost work]# cd nginx-1.22.1 [root@localhost nginx-1.22.1]# git clone https://gitee.com/web_design_of_web_frontend/ngx_http_proxy_connect_module.git 2、下载该模块的补

    2024年02月13日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包