首页 > 网站 > Nginx > 正文

将ngx_brotli编译成动态nginx模块的方法

2024-08-30 12:23:37
字体:
来源:转载
供稿:网友
  Nginx从nginx 1.9.11开始就支持动态模块,所以我们尝试一下把gx_brotli编译成动态nginx模块,安装前的系统需求是:
  sudo apt-get install autoconf libtool nginx-extras.
  本文的测试环境是ubuntu 14.04, ppa:nginx/stable, nginx/1.10.1.
  首先安装libbrotli:
  git clone https://github.com/bagder/libbrotli
  ./autogen.sh
  ./configure
  make
  sudo make install.
  为了让libbrotli的程序能够加载so文件,所以我们创建一个软链:
  sudo ln -s /usr/local/lib/libbrotlienc.so.1 /lib/libbrotlienc.so.1.
  然后下载好nginx和ngx_brotli的源代码:
  wget http://nginx.org/download/nginx-1.10.1.tar.gz
  git clone https://github.com/google/ngx_brotli
  编辑ngx_brotli/config文件,在顶部添加如下一行:
  have=NGX_HTTP_HEADERS . auto/have
  然后就在nginx源码目录执行configure:
  ./configure /
  --add-dynamic-module=../ngx_brotli/ /
  --with-http_dav_module /
  --with-http_realip_module /
  --with-http_v2_module /
  --with-threads /
  --with-http_ssl_module /
  --with-ipv6
  并make,则到两个so文件:
  $ find -name ngx_http_brotli*.so
  ./objs/ngx_http_brotli_static_module.so
  ./objs/ngx_http_brotli_filter_module.so
  最后加载模块:
  在/etc/nginx/nginx.conf文件中把下面两行加入,使nginx加载模块:
  load_module '/path/to/ngx_http_brotli_static_module.so';
  load_module '/path/to/ngx_http_brotli_filter_module.so';
  最后在http段中加入下面两个配置:
  brotli on;
  brotli_static on;
  最后执行sudo nginx -t 看看有没有错误,如果没有错误的话那就成功了。不过,brotli压缩算法只有在https连接中才会生效。
 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表