Nginx で ssi を使かう
Apache から Nginx に変更したら ssi 動かないので調べてみた。
NGINX の設定
SSI は一々、NGINX で HTML の内容をパースするため、NGINX のパフォーマンスに影響が大きいので、無差別に SSI をオンにしないように、NGINX の conf の location で対象を絞った方がいいと思う。例えば、index.html にどうしてもアクセスカウンターを SSI で表示させたいと思っているとしたら、次のようにする
location /index.html { ssi on; ssi_types text/plain; # デフォルトの text/html に加えて、text/plain も扱う場合 root /www }前述のように、NGINX の SSI は、静的なファイルのインクルードか、CGI からの出力をインクルードする程度のものしか対応する気がないようである。CGI からの出力を HTML ファイルの中に埋め込んで表示する場合は、include virtual コマンドを使う:
https://blog.scaredeer.com/2023/12/nginx-ssi.html?m=1<!--# include virtual="/cgi-bin/ssi/test.py" -->
nginx.conf を編集
server {
location / {
ssi on; #追加
ssi_last_modified on; #追加
}
}
と言うことで、実際やってみると上手くいかない。
<!--# include virtual="絶対値で設定" -->
絶対値で設定すると出来た。
Apache から Nginx に変更したら文字化け
Apache から Nginx に変更したら文字化けが発生したので調べてみた。
nginx.conf を編集
server {
location / {
charset utf-8;
}
}
文字化けが解消した。
参考サイト
https://qiita.com/xKxAxKx/items/898869f9c0707896739\5
https://blog.scaredeer.com/2023/12/nginx-ssi.html?m=1

