Supervisor の Web Interface をサブディレクトリ上で表示する
Supervisor とは
普通のシェルスクリプトなんかをデーモン的なプロセスとして常時起動してくれたりする便利なやつです。
Supervisor の WebInterface
/etc/supervisord.conf
の中の、inet_http_server
セクションのコメントアウトを外すことで、ウェブブラウザ上から管理を行うことができるようになります。
しかし、この WebInterface はルートパスでの動作しか考えられておらず、リバースプロキシを使ってサブディレクトリの中で動かそうとすると、CSSや画像、リンク周りが死にます。
数年以上 Issue が開かれていますが、ずっとオープンのままです。
そこで、リバースプロキシとして動作させている Apache 上で Body をうまく書き換えて、問題に対処しようと思います。
mod_substitute モジュール
特定のMIMEのリクエストに対して、正規表現による置換を行うことができます。
実際の conf ファイル
こんな感じの conf を書きます。
|
|
RequestHeader unset Accept-Encoding
しているのは、mod_substitudeによる置換が平文で行われるようにするためです。
AddOutputFilterByType
で対象となるMIMEを選択し、Substitute
で行う置換を記述します。
今回は、supervisorだけの必要最低限の処置として href
と src
にサブディレクトリを付与するようにしました。(サブディレクトリは supervisor
という感じに置換しているので、別ディレクトリにする場合は読み替えて下さい。)
正規表現内では、http
から始まるパスを、外部ホストへのリンクと決め打ちして除くようにしているので、他のソフトに使うときも注意が必要です。
作成者 Ralph
最終更新時刻 2017-12-23