intra-mart Accel Platform セットアップガイド 第48版 2024-10-01

4.4.1. Apache HTTP Server

4.4.1.1. 前提条件

  • ベースURLの設定
    Apache を使用する場合ベースURLの設定が必要です。

コラム

  • ベースURLには <httpまたはhttps>://<ApacheのIPアドレスまたはドメイン名>:<Apacheのポート番号>/<コンテキストパス> を設定します。
  • 構築するサーバ環境に応じて適切に設定してください。
  • ベースURLについての詳細は、ベースURLを参照してください。

4.4.1.2. mod_proxy/mod_rewriteの利用

ここではResinの組み込みモジュールを利用せずApacheのモジュール(mod_proxy/mod_rewrite)を利用して、webサーバとintra-mart Accel Platformの連携を行う場合の設定を行います。

4.4.1.3. mod_proxy/mod_rewriteの取得

製品元のマニュアルを参照してください。

4.4.1.4. apache設定ファイルの編集

  1. <%APACHE_HOME%/conf/httpd.conf> ファイルを開きます。

  2. Dynamic Shared Object (DSO) Supportエリアに以下の設定を追加またはコメントアウトを外してください。

    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
    
  3. 末尾にAllowEncodedSlashesディレクティブ、mod_proxyおよびmod_rewriteの設定を追加してください。

    コンテキストパス imart
    apacheのドキュメントルート /usr/local/apache/htdocs
    静的ファイルの展開フォルダ /usr/local/apache/htdocs/imart
    Web Application ServerのIPアドレス 192.168.1.1
    Web Application Serverのポート番号 8080

    上記の例である場合の設定は以下の通りです。

    SetEnv proxy-nokeepalive 1
    AllowEncodedSlashes On
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/imart/reverse_proxy/
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.gif|.*\.GIF)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.png|.*\.PNG)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.jpg|.*\.JPG)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.jpeg|.*\.JPEG)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.css|.*\.CSS)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.js|.*\.JS)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.swf|.*\.SWF)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.ico|.*\.ICO)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.svg|.*\.SVG)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.json|.*\.JSON)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.jar|.*\.JAR)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.xml|.*\.XML)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.yaml|.*\.YAML)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.txt|.*\.TXT)$ [OR]
    RewriteCond %{REQUEST_URI} ^/imart/(.*\.html|.*\.HTML|.*\.htm|.*\.HTM)$
    RewriteRule ^/imart/(.*)?$ /imart/$1
    
    RewriteCond %{HTTP:Connection} Upgrade [NC]
    RewriteCond %{HTTP:Upgrade} websocket [NC]
    RewriteRule ^/imart/(.*)?$ ws://192.168.1.1:8080/imart/$1 [P,L]
    
    ProxyPreserveHost On
    ProxyPass /imart/ http://192.168.1.1:8080/imart/ nocanon
    ProxyPassReverse /imart/ http://192.168.1.1:8080/imart/ nocanon
    ProxyTimeout 1200
    

    コラム

    上記に指定した拡張子は、intra-mart Accel Platform Advanced版+intra-mart Accel Collaboration+IM-FormaDesigner for Accel Platformで静的ファイルとして扱う必要がある拡張子です。
    上記RewriteCondにない静的ファイルを取り扱いたい場合には、RewriteCondの記述を追加してください。

    コラム

    「ProxyTimeout」にはプロキシサーバ が Resin への接続を切断するまでのタイムアウト時間を設定します。
    テナント環境セットアップを完了するのに十分に大きい値を設定してください。
    ここでは例として 1200 秒を設定しています。

    注意

    APサーバのコンテキストルートを必ずリクエストに含むようにしてください。
    APサーバ側 http://myapp/imart であれば、 リクエストのURLは http://myweb/imart にしてください。
  4. Apacheを再起動してください。

4.4.1.5. アクセスログの編集

リバースProxy の場合、Resinが出力するaccess.logのソースIPがすべて127.0.0.1になってしまいます。 これを回避するためにaccess.logの出力内容を編集します。

  1. <%RESIN_HOME%/conf/resin.xml> ファイルを開きます。

  2. <host id=”” root-directory=”.”> ディレクティブ内に以下の設定を追加してResinの再起動を行ってください。

    <access-log path='log/access.log'>
      <rollover-period>1D</rollover-period>
      <format>%{X-Forwarded-For}i %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"</format>
    </access-log>
    

    コラム

    access-logについての詳細な設定内容については「Resin Documentation 」を参照してください。

4.4.1.6. 制限事項

制限事項については「リリースノート 」を参照してください。