ColdFusionとApache(Webサーバー)を別サーバーに分離する参考情報

本ページの内容に関する参考情報について

注意)本FAQ記事の内容は、ColdFusion 2021 で、ColdFusion と Apache Webサーバーを別々のサーバーに分離して動かす際の設定等をまとめた参考情報です。本ページの内容の正確さや推奨を保証するものではなく、Webサーバーやコネクタの更新によってこの通りに動作しなくなる場合もございますため、参考情報として公開しております。

ColdFusionでIISやApacheとの接続に使用している接続コネクタ(AJP)は、ColdFusionとWebサーバーを別々に分離することが可能ですが、下記の制限や運用上の複雑さもあり、ColdFusionとWebサーバーは同一のサーバーで運用する場合のみがサポートされており、分離した環境の運用はサポートされておりません。

  • 同一サーバーと異なり、ColdFusionで実行するファイル(.cfmや.cfc)はWebサーバーのルートに配置しても読み込むことができません。ColdFusion内部のWebルートに配置する必要があります
  • 静的ファイル(.html, .js, .css 等)は、Webサーバー側に配置する必要があります。そのため、ColdFusion側で用意されているJavaScriptファイルなどを手動でWebサーバーに設置する必要があります
  • ColdFusion の Updateを適用後、ColdFusion側で用意されているJavaScriptファイルの差し替える必要があったり、Webサーバーのコネクタの設定を更新(やり直す)必要がある場合があります
  • セキュリティの強化により、デフォルトの状態では同一サーバーのApacheとの接続のみが可能となっています。リモートのWebサーバーからの接続には追加の設定が必要となります

この記事では、参考情報として、ColdFusionとApache(Webサーバー)を分離して動作させる例をご紹介致します。本来はすべて手動でコネクタの設定を行う必要がありますが、メーカーサイトには情報が公開されていませんので、簡易的な方法として、以下の作業概要の手順にて作業をしております。

■□■作業概要■□■

  1. ColdFusionサーバー内にもApacheをインストールし、Webサーバー接続ツール(wsconfig)を使用して、ColdFusionとローカルのApacheとを接続します
  2. 作成された接続コネクタファイル、および、設定ファイルを、リモートのWebサーバーに移動し、パス等を変更します
  3. その他、動作に必要な設定を変更します


■□■作業詳細■□■

  1. の作業について
    【CFサーバー側】
    1. ColdFusionサーバー内にもApacheをインストールし、Webサーバー接続ツール(wsconfig)を使用して、ColdFusionとローカルのApacheを接続します
    2. ローカルのApacheが起動している場合は停止します
    3. ColdFusion 2021 Application Serverサービスも停止します
       
  2. の作業について
    【CFサーバー側】
    1. 以下のファイル・フォルダをリモートのApacheサーバーにコピーします
      ①Apacheのconfフォルダ内に配置されたファイル
      (mod_jk.conf, mod_jk.so, workers.properties)
      ②[cf_root]/config/wsconfig/内に作成された「数字(1,2 ...)」フォルダ③[cf_root]/cfusion/wwwroot/cf_scripts フォルダ

      ※コピー先は、①はリモートのApacheのconfフォルダ(例 C:\Apache24\conf)、
      ②と③は任意の場所(Webルート内以外の場所 例 C:\CF)に置いてください

    【Apache(Webサーバー)側】
    1. ①のmod_jk.confをテキストエディタ(メモ帳等)で開き、以下のパスを環境に合わせて変更します
       JkWorkersFile "①のworkers.propertiesのファイルパス"
       LoadModule    jk_module  "①のmod_jk.soのファイルパス"
       JkShmFile "①のjk_shmのファイルパス※実行前なので生成されていません"
       JkLogFile "①のmod_jk_global.logのファイルパス※実行前なので生成されていません"
    2. ①のworkers.propertiesの以下の設定を変更します
       heartbeat_interval=0
       worker.cfusion.host=CFサーバーのIPアドレス
       
    3. httpd.confの末尾に以下の2行を追加してください
       Include "①のmod_jk.confのパス(例 C:\Apache24\conf\mod_jk.conf)"
       Include "②で配置したmod_jk_vhost.confのパス(例 C:\CF\1\mod_jk_vhost.conf)"
       
    4. ②のmod_jk_vhost.confのパスとAliasの設定を環境に合わせて変更します
       JkMountFile (②のuriworkermap.propertiesのファイルパス)
       JkLogFile (②のmod_jk.logのファイルパス※実行前なので生成されていません)
       Alias /cf_scripts "③で配置したcf_scriptsのパス(例 C:\CF\cf_scripts)"
       <Directory "③で配置したcf_scriptsのパス(例 C:\CF\cf_scripts)">
       
  3. の作業について
    【CFサーバー側】
    1. ファイアウォールの設定で、リモートからのポート8020の受信を許可します
      (※ポートは workers.propertiesのworker.cfusion.portで指定されています)
       
    2. [cf_root]/cfusion/runtime/conf/server.xmlファイルの以下にaddressを追加します
       <Connector packetSize="65535" protocol="AJP/1.3" port="8020" ...
                          address="CFサーバーのIP"/>
       (※addressに追加するのはWebサーバーのIPではございません)

 

作業の完了後、リモートのApacheの起動と、ColdFusion 2021 Application Serverサービスを起動し、ColdFusionサーバーのWebルート([cf_root]/cfusion/wwwroot)に任意の.cfmファイルを配置して接続テストを行ってください

  • Apacheが起動しない場合は、変更したパスが正しいことを確認してください
  • ColdFusion に接続できない場合は、Ⅱの2.のworker.cfusion.hostとⅢの2.のaddressの指定が正しいかを確認してください

■□■Update適用時の注意■□■

    提供されるUpdateにはWebサーバーコネクタの修正や、ColdFusion側で用意されているJavaScriptファイルの差し替えが必要となる場合があります。

    • Webサーバーのコネクタの修正が発生するかどうかはUpdateのリリースノートを確認してください
    • JavaScriptファイルの差し替えが必要かどうかは、Update適用後のログファイルを確認してください。[cf_root]/cfusion/hf-updates/hf-2021-000XX-XXXXXXフォルダ内に、hotfix_filelist.logが出力されますので、一覧の中にcf_scriptsフォルダ以下のファイルが存在する場合は、差し替えが必要となります

     


    記事公開日:2021年04月21日
    最終更新日:2023年06月23日


    x

    Sample Modal Window

    This is just a sample…

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

    Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.