################################################## 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; }