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設定ファイルの編集¶
<%APACHE_HOME%/conf/httpd.conf> ファイルを開きます。
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末尾に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 にしてください。Apacheを再起動してください。
4.4.1.5. アクセスログの編集¶
リバースProxy の場合、Resinが出力するaccess.logのソースIPがすべて127.0.0.1になってしまいます。 これを回避するためにaccess.logの出力内容を編集します。
<%RESIN_HOME%/conf/resin.xml> ファイルを開きます。
<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. 制限事項¶
制限事項については「リリースノート 」を参照してください。