机上ラボ > ターミナルサーバー活用概論

クローズドWEB開発環境をフレキシブルに公開する


Integrated production LOW-TECH-SIDE by TACHY/RAWSEQ. TOPへ戻る
ウェブ開発環境はセキュアでクローズな環境であるに越したことはない。しかし、携帯や、スマートフォン実機で再現確認する等、場合によってはグローバル公開をした上で調整をかけたい場合もある。そういった場合、簡単なWeb構造であれば、開発環境に手を加えずに公開する方法がある。その手法を紹介します。

用意するもの


■.クローズド環境側
 1.ブラウザで、確認できるWeb環境
  (Apache,IIS,Tomcat,WebShere,GlassFish,IHS...なんでも)
 2.sshクライアント(PuTTY,TeraTermSSH等)
■.公開側サーバー(ターミナルサーバー)側
 1.SSH サーバー
 2.Apache サーバー
 3.mod_proxy(Apache標準装備)
 4.mod_filter(Apache標準装備)
 5.グローバルIPや接続可能なインフラ
  (要は、外部から接続できる環境)

概要


例)Tomcatの動的ページを公開する例

リモートフォワードによるポート転送


まず、各通信ポート(8080)で確認できる開発環境で通信面を整えます。 openssh のコマンドラインを例に見てみましょう。
・開発環境からターミナルサーバーへポートフォワーディング接続
ssh -R 8080:localhost:8080 ターミナルサーバーHost名
 
 
これで、開発環境→ターミナルサーバーへの接続は確保されました。

リバースプロキシ設定


次に、ターミナルサーバー側Apacheにて以下の設定を行います。
・ターミナルサーバー側 httpd.conf(適切な場所に追記)
site1というコンテキストルートで開発していた場合、そのままsite1という名のコンテキストで公開する場合です。 ターミナルサーバーのローカルホストに通信が転送された事を前提にApache側でも転送を行います。
上記設定で公開を許可している為、不特定多数の方に見られる環境であれば、基本認証をかけておきましょう。

フィルターモジュールでリンク先調整


公開側ドメインや、コンテキストをカスタマイズしていた場合、サイト上のリンク先が開発環境に向いてしまいます。
その場合、動的コンテンツの場合、アプリケーションの設定を変えれば済む話ですが、開発からも見たい。もしくは切り替えるのが面倒な場合、Apacheのfilterモジュールを利用し、出力ストリームを置換してしまいましょう。
・ターミナルサーバー側 httpd.conf(適切な場所に追記)

「urlmod」というフィルタを定義しています。intypeはコンテンツタイプ。通常のhtmlであれば、「text/html」となります。cmdでサーバーコマンドを実行し、出力結果をそのまま出力するようにできています。 サーバー側でコンバートするスクリプトや、アプリケーションを作れば、いろんなことができそうですね・・


Copywright by TACHY/RAWSEQ LOW-TECH On Line