nginx に brotli モジュールを追加する¶
概要¶
Sora 向けの wasm バイナリはとても大きいため brotli で圧縮してクライアントへ配布することをおすすめしています。
ここでは wasm バイナリを Nginx 経由で brotli で圧縮して配布する方法について説明します。
インストール¶
現在インストールされている nginx に brotli モジュールを追加する 現在のバージョンの nginx と ngx_brotli.git を使用してモジュールを作成する
# git clone https://github.com/google/ngx_brotli.git
# cd ngx_brotli && git submodule update --init && cd ~
# curl -LO http://nginx.org/download/nginx-`nginx -v 2>&1 | awk '{ print $ 3 }' | tr -d 'nginx/'`.tar.gz
# tar xf nginx-`nginx -v 2>&1 | awk '{ print $ 3 }' | tr -d 'nginx/'`.tar.gz
# cd nginx-`nginx -v 2>&1 | awk '{ print $ 3 }' | tr -d 'nginx/'`
# apt install -y libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev
# ./configure --with-compat --add-dynamic-module=../ngx_brotli
# make modules
# cp objs/*.so /usr/share/nginx/modules/
nginx.conf¶
下記を追記する
load_module "modules/ngx_http_brotli_filter_module.so";
load_module "modules/ngx_http_brotli_static_module.so";
sites-enabled/default¶
brotli で圧縮したい location に brotli 設定を追加する
location = /e2ee/wasm.wasm {
brotli on;
brotli_comp_level 5;
brotli_types application/wasm;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:5000;
}