今天大鸟在后台升级Nginx版本到Nginx 1.15.8,不过升级好之后,Nginx 不能启动。大鸟手动启动却跳出了错误,如下:
ERROR: nginx: [emerg] unknown directive "brotli" in /www/server/panel/vhost/nginx/www.daniao.org.conf:74 nginx: configuration file /www/server/nginx/conf/nginx.conf test failed
额,之前,大鸟在Nginx 1.15.6上面编译安装了brotli,现在升级了版本之后,反而出现了这个问题,造成了之前brotli的模块丢失,不知道这是不是新版本的bug。不过好在,大鸟编译过这一个模块,所以之前安装的环境都在,我们只要重新编译下就可以了。
如果还用之前的方式安装没有新意。今天我们换个很“宝塔”的方式来重新编译安装这个brotli模块。
传送门:
如果你找到这篇文章,请移步最新的教程,但是这篇文章还可以参考。
第一:下载ngx_brotli模块及其依赖
cd /www/server git clone https://github.com/google/ngx_brotli cd ngx_brotli && git submodule update --init
第二:获取Nginx Arguments
我们输入命令,如下:
nginx -V
v是大写,这里要注意下。大鸟发现确实以前编译的brotli模块在Nginx 1.15.8看不到了。
第三:编辑配置
这里我们可以有两个方法。
- vi /www/server/panel/install/nginx.sh
- 直接编辑nginx.sh文件,路径:/www/server/panel/install
在你需要安装的Nginx版本下增加:–add-module=/www/server/ngx_brotli
if [ "${nginxVersion}" != "1.8.1" ];then if [ "${nginx_version}" == "1.14.2" ] || [ "${nginx_version}" == "1.12.2" ];then ./configure --user=www --group=www --prefix=${Setup_Path} --with-openssl=${Setup_Path}/src/openssl --add-module=${Setup_Path}/src/ngx_devel_kit --add-module=${Setup_Path}/src/lua_nginx_module --add-module=${Setup_Path}/src/ngx_cache_purge --add-module=${Setup_Path}/src/nginx-sticky-module --add-module=${Setup_Path}/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --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-pcre=pcre-${pcre_version} ${jemallocLD} elif [ "${nginxVersion}" == "1.15.8" ]; then ./configure --user=www --group=www --prefix=${Setup_Path} --with-openssl=${Setup_Path}/src/openssl --add-module=${Setup_Path}/src/ngx_devel_kit --add-module=${Setup_Path}/src/lua_nginx_module --add-module=${Setup_Path}/src/ngx_cache_purge --add-module=${Setup_Path}/src/nginx-sticky-module --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --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-openssl-opt="enable-tls1_3 enable-weak-ssl-ciphers" ${jemallocLD} --add-module=/www/server/ngx_brotli else
如果是Nginx 1.15.8在167行即可找到。如图:
在最后加上–add-module=/www/server/ngx_brotli
第四:编译Nginx
重新编译Nginx,我们需要选择好自己的版本,大鸟的是Nginx1.15.8。命令如下:
sh /www/server/panel/install/nginx.sh install 1.15
安静等待编译完成。如图:
这样我们就编译完成了brotli模块。
当然,安装好之后,我们需要使用brotli模块,因为之前大鸟写了相关的文章,这里就不在啰嗦了,我们可以移步这里:
宝塔面板6.8.8 NGINX自编译Brotli压缩-提高压缩比加速网站 我们可以在这篇文章的 第五、配置Brotli压缩 中找到方法!
第五:总结
编译brotli,大鸟全程用的是宝塔SSH终端,这也说明这个插件还是可以用用的,起码编译模块的时候会方便很多。
用这种方法,来编译模块,还是很方便的,大鸟之前说的方法到是很啰嗦了。对于宝塔面板来说,我们用最简单的方法才是好的方法。
当然,如果你开启了Brotli压缩,不妨再开启TLSV1.3,如果你不会可以看看这篇文章:宝塔面板之网站优化加速-开启TLSV1.3
同时开启TLSV1.3和Brotli压缩,对于提升网站的打开速度还是有一丢丢帮助的,提升网站打开速度是一个系统工作,我们需要在细节方面不停的完善优化,而不是只优化一个地方,只有每个地方都优化到位了,才会有立竿见影的效果。