内部サーバーにあるZoneMinderのインターフェイスを外部に転送

今回運用しているZoneMinderはファイアウォールの内側にある内部用のサーバーで買おうさせています。

外部公開サーバーに載せなかった理由はいたって簡単で、ディスク容量と不安定な動作でサーバー障害の原因とならないようにするためです。

内部用サーバーは監視カメラの制御とバックアップ用のファイルサーバー、そして将来的には仮想化して実験用のサーバーやWindowsで稼働させているAPRS関連のサービスをサーバーで仮想化できればと目論んでおります。

今回はApacheの機能であるリバースプロキシを活用して内部サーバーで稼働しているZoneMinderをネット上から公開用のwebサーバーを通してアクセスしようという試みです。

で、ついでにhttps化も実現できればと言うオマケつき。

Apacheの設定

/etc/httpd/conf/httpd.conf

に下記を追加してリバースプロキシを実現します。

予め接続させたいドメインには”Proxy”でロケーションを用意してアクセス権などを好みの内容で設定しておきます。

ProxyPass /cctv http://[サーバーネーム]/cctv
ProxyPassReverse /cctv http://[サーバーネーム]/cctv
ProxyPass /cctv/cgi-bin http://[サーバーネーム]/cgi-bin
ProxyPassReverse /cctv/cgi-bin http://[サーバーネーム]/cgi-bin
ProxyPass /cgi-bin-zm http://[サーバーネーム]/cgi-bin-zm
ProxyPassReverse /cgi-bin-zm http://[サーバーネーム]/cgi-bin-zm
([サーバーネーム]はZMが実際に稼働しているサーバーの内部名称です。公開サーバーからアクセスできる実アドレスを記載します。)

ZoneMinderの設定の注意点

本来リバースプロキシ(Reverse Proxy)はApacheの機能なのでZonemInderには一切関係がありませんが、1つだけ悪影響を及ぼす注意点があります。

ZM内の映像と言いますか画像のストリームは組み込みとなっておりApacheのリバースプロキシはこのhtml内に掛かれている内部埋め込みURLまで書き換えるものではありません。

ZMの設定[Option]-[Servers]の中にZMサーバーを設定していると問題が生じます。

本来ここには必要のない限りサーバーを設定しないのがデフォルトとなっています。 コメントにもそのようにハッキリと謳われています。 サーバーが1台の場合は必要ありません。

勿論その1台しかいないサーバーを敢えて不必要にも設定した場合DMとしては問題なく機能しますがストリーミングの埋め込みURLにサーバーアドレスが追加記入され、これが原因となりリバースプロキシ経由ではアクセスできなくなります

これには注意が必要です。

サーバー設定の世界では必要性のない設定はあえてしないことが重要なんですね。 その時点で動作に問題や悪影響が無くてもどこで副次的に影響を及ぼすか分からないですからね。

スポンサーリンク


当ブログにお越し下さいましてありがとうございます。
ブログランキングに参加しております。
皆様の応援が励みになりますのでよろしければ応援クリックくお願い致します。
にほんブログ村 車ブログへ
にほんブログ村

シェアする

  • このエントリーをはてなブックマークに追加

フォローする