Nginx源码安装并开启http2.0以及brotli压缩

前言

本教程主要针对Centos7环境,其他更多环境安装教程,欢迎评论区补充说明。

截至今天(2023年1月8号)为止,在Centos7环境中使用yum一键安装nginx最新稳定版(nginx-1.22.1)已经内置gzip静态压缩,但是还是不支持brotli压缩。目前主流浏览器均已支持http2.0以及brotli压缩,接下来我来教大家使用nginx开启http2.0以及brotli压缩提升网站加载速度。

安装下载工具

yum install -y wget git

安装编译工具以及库

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

下载Nginx、pcre 源码

相比较《nginx 源码安装并开启gzip静态压缩》这篇教程,这里我使用了shell并行执行命令nginx源码使用国内镜像提升下载速度。

注意:nginx、pcre、ngx_brotli源码必须在同一级目录下!

wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz & wget https://mirrors.huaweicloud.com/nginx/nginx-1.22.1.tar.gz & wait

解压Nginx、pcre源码

串行执行shell命令,可以直接复制以下所有代码并执行。

tar -xvf nginx-1.22.1.tar.gz;tar -xvf pcre-8.45.tar.gz

下载ngx_brotli源码

串行执行shell命令,可以直接复制以下所有代码并执行。

git clone https://gitee.com/eagle_0810/ngx_brotli.git && 
cd ./ngx_brotli && 
git submodule update --init

安装编译nginx

安装目录指定 /usr/local/webserver/nginx
同时支持gzip静态压缩模块

串行执行shell命令,可以直接复制以下所有代码并执行。

cd nginx-1.22.1 &&
./configure --prefix=/usr/local/webserver/nginx --conf-path=/usr/local/webserver/nginx/conf/nginx.conf --error-log-path=/usr/local/webserver/nginx/logs/error.log --http-log-path=/usr/local/webserver/nginx/logs/access.log --pid-path=/usr/local/webserver/nginx/run/nginx.pid --with-http_stub_status_module --with-http_ssl_module --with-pcre=/pcre-8.45 --with-http_gzip_static_module --with-stream --with-http_v2_module --add-module=./ngx_brotli &&
make && 
make install

测试是否安装成功

/usr/local/webserver/nginx/sbin/nginx -V

设置http2.0以及brotli压缩

推荐添加到server模块中。

注意:必须开启https,配置ssl证书!可以使用openssl生成永久免费证书。

listen       80;
# 开启 https、http2.0
listen       443 ssl http2;
server_name  test.jincheny.com;
	
# SSL配置
ssl_certificate      /ssl/private.crt;
ssl_certificate_key  /ssl/private.key;
ssl_session_cache shared:SSL:1m; 
ssl_session_timeout 5m; 
ssl_ciphers HIGH:!aNULL:!MD5; 
ssl_prefer_server_ciphers on;
# 开启gzip静、动态压缩
gzip_static on;
gzip_http_version 1.1;
gzip_proxied expired no-cache no-store private auth;
gzip  on;
gzip_min_length 1k;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
gzip_comp_level 4;
gzip_buffers 4 16k;
# 开启brotli静、动态压缩
brotli_static on;
brotli on;
brotli_comp_level 6;
brotli_buffers 16 8k;
brotli_min_length 1k;
brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;

验证

上传带有brotli压缩后的前端源码,ETag显示如下则表示已经成功开启brotli静态压缩,ETag带有W/表示开启brotli动态压缩,另外协议上显示HTTP/2表示http2.0配置成功。

猜你喜欢

转载自blog.csdn.net/jinchenxinglaiy/article/details/128600431