ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

KUSANAGIでWEXALを止めたらHTMLの圧縮ができない。設定を変える。

超高速仮想マシン KUSANAGI

KUSNAGIのプレミアムエディションにあるWEXALを止めたところ、WebサーバーのレスポンスのHTMLの圧縮ができなくなりました。

『Nginxの設定では圧縮ONになってるんだけど...』と思いながら有効な解決策が見いだせず放置していたんですが、やっと見つかりました。

やっぱり原因はNgnixの設定です。

一般的にNginxでは、レスポンスデータの圧縮設定は etc/nginx/nginx.confに記述します。

これがKUSANAGIプレミアムエディションの設定。

etc/nginx/nginx.conf
http {
・
省略
・
    gzip on;
    gzip_disable "msie6";
    gzip_proxied any;
    gzip_min_length 1024;
    gzip_comp_level 2;
    gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/json;

    brotli on;
    brotli_static on;
    brotli_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/json;
    brotli_comp_level 3;
    brotli_min_length 1024;
・
省略
・
}

gzip, brotli の圧縮が有効化されてます。

(Brotliは2015年に発表された比較的新しい圧縮方式。)

ね? これで圧縮されないなんて不思議でしょ?

ボクも色々やりましたよ。gzip と brotli の2つがあるから動かないんじゃないか? と思ったりして、brotli の設定をコメント化してみたり。

でもそんなことはありませんでした。この設定に間違いはないです。

圧縮有効化のあとで無効化する設定を発見!

Nginxの設定では、etc/nginx/conf.d ディレクトリ下にサイトのドメインごとに設定する仕様になっています。

(Serverセクションの設定。)

そこである設定ファイルを読み込んでいることを発見。

ect/nginx/conf.d下の設定ファイル
server {
・
省略
・
        include conf.d/html_pst/location_php_pst.conf;
・
省略
・
}

するとこんな設定が見つかりました。

etc/nginx/conf.d/html/html_pst/location_php_pst.conf
if ( $org = '' ) {
    set $do_not_pagespeed 1;
    brotli off;
    gzip off;
}
if ( $do_not_pagespeed = 0 ) {
    pagespeed Allow "*";
#   pagespeed EnableFilters collapse_whitespace,trim_urls,remove_comments;
    pagespeed EnableFilters collapse_whitespace;
}

WEXAL を止めると、Nginxのレスポンスの圧縮設定を無効化するみたいです。そこでこのように修正。

修正
if ( $org = '' ) {
    set $do_not_pagespeed 1;
    # wexalを止めるとページの圧縮ができないのでコメント化
#   brotli off;
#   gzip off;
}
if ( $do_not_pagespeed = 0 ) {
    pagespeed Allow "*";
#   pagespeed EnableFilters collapse_whitespace,trim_urls,remove_comments;
    pagespeed EnableFilters collapse_whitespace;
}

圧縮無効化をコメント化。

これでWEXALを止めてもNginxが圧縮データを返すようになります。

言い残すとこだった。設定を変更したらNginxへの反映も忘れずに。

systemctl reload nginx

あくまで自己責任で。

今回の設定変更は思い通りのことができましたが、分かってないこともあります。

なぜ、WEXALを止めると圧縮をやめてしまうのか?

この設定変更で、KUSANAGIのNginxにどのような影響が出るのか?

ボクは目的が達成されたので良しとしていますが、これで何も問題ないという保証はありません。

(今のところ悪影響は出てない。)

どうしてもやらざるを得ない苦肉の策です。

そもそも、せっかくKUSANAGIプレミアムを使ってるのに、WEXALを止めてフリー版と対して変わらない運用をしていることを不思議に思うかもしれません。

ただ、ボクの低スペック環境ではプレミアムの機能が充実しすぎていて、CPUがパンパンになったんです。

素直にサーバースペックを上げるのが常套手段だと思いますよ?

前の投稿
KUSANAGI, WEXALを泣く泣く止めた話。推奨メモリ以下(2G)ではキツかったみたい。
KUSANAGIのWebサーバーって異常終了を自動リカバリしないんだ。設定を変える。
次の投稿

コメントを残す