プロフィール

けい

Author:けい
公開したWebサービス・アプリ一覧はこちら

※2014年12月、私が個人で開発したWebサービス・アプリへの
累計アクセス数は8億を超えました。
負荷対策頑張ります。日々精進していきます!!


■■■ 業務経歴 ■■■
社会人1年目:携帯電話開発。画面周りを1年間
2年目 :海外向け携帯電話ミドルウェア開発
     ブラウザとプロトコルスタック周り
2年目後半~:携帯電話の通信専用チップ開発
3年目:カーナビ。画面周りの開発
3年目後半~:BDビデオカメラ
     組み込みLinux カーネルと
     ドライバの開発。
4年目12月:プロジェクト途中で退社
~ここまではC、またはC++で開発~

~ここからJavaがメインの開発~
4年目1月:Web系の会社に転職
       ~4ヶ月間の研修
5年目5月:製造業向け生産管理システム開発
6年目9月:証券会社向けシステム開発
7年目10月~携帯電話向けコミックサイトの運用・開発
8年目12月:プロジェクト途中で退社

~ここからPHPがメインの開発~
8年目1月~仲介手数料が無料の不動産屋の社内SEに転職
交渉しほぼ完全に裁量労働が可能な立場になる。
業務内容はシステム全般ですが、
最近はSEO対策の作業が多いです。
現在14年目 まだ、しばらくはこの会社に居るつもりです。

あと、全ての記事がリンクフリーです。

最近の記事

過去ログ

全ての記事を表示する

全ての記事を表示する

カテゴリー

FC2カウンター

RSSフィード

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.--    [ Myカテゴリ:スポンサー広告 ]

apache2.2とtomcat5.5を連携した場合の、Webアプリケーション(Struts)のベースディレクトリの記載方法

今回の内容はdebianでtomcat5.5とapache2.2の連携の続きとなるのですが、
連携後のWebアプリケーションフレームワークの動作で丸一日以上はまってしまったので
自分へのいいわけと対応方法を書いておこうと思う。

現象:
http://ServerName/do/ 以下のアクセスのみ
Tomcatが管理するように
/etc/apache2/sites-avilable/default またはdebian以外のディストリビューションならば httpd.conf に
以下のように記載してあるとする。

<Location /do>
  ProxyPass ajp://localhost:8009/
  allow from all
</Location>

Strutsを例に挙げて説明するとWebアプリケーションのパスは通常、名前のみを指定する。
例えば、JSPのアクションなどでは以下のように記述した場合
JSP
<html:form action="/Index.do" >

struts-config.xml に記載する対応するAction
<action-mappings>
  <action path="/Index" >
    <forward name="success" path="/Index.jsp" />
  </action>
</action-mappings>

ところが上記設定では展開されるパスは action="/プロジェクト名/Index.do" となってしまい、
想定している action="/do/プロジェクト名/Index.do"とは
展開してくれず
tomcatにリクエストが渡されなくなってしまうのだ。

・Tomcatが認識するBASEディレクトリの変更はどのように行うのか?
・それともStruts側で何か設定できるのか?
・またはApacheディレクトリ設定やAliasなどで騙すことができるのか?

という観点で
/var/lib/tomcat5.5/conf/Catalina/localhost/プロジェクト名.xml, web.xml, server.xml
struts-config.xml
/etc/apache2/sites-avilable/default、httpd.confのAlias

などを調べました。
そしてはまった最大の理由が、それぞれのファイルに使えそうな設定があったということです。
なのでその使えそうな設定を組み合わせているうちに、時間が経ってしまいました。
結論としては/etc/apache2/sites-avilable/defaultを以下のように変更するだけでできました。

<Location /プロジェクト名>
  ProxyPass ajp://localhost:8009/プロジェクト名/
  allow from all
</Location>

また、Apacheとtomcatが異なったIPを持つ場合には
localhostの箇所をIPに変えることによりアクセス可能です。
以下はadminとmanagerのアクセス設定です。

<Location /admin>
  ProxyPass ajp://192.168.11.103:8009/admin
  Order allow,deny
  Allow from 192.168.11.0/255.255.255.0
  Allow from 10.8.0.5/255.255.255.252
  Allow from 127.0.0.0/255.0.0.0
</Location>
<Location /manager>
  ProxyPass ajp://192.168.11.103:8009/manager
  Order allow,deny
  Allow from 192.168.11.0/255.255.255.0
  Allow from 10.8.0.5/255.255.255.252
  Allow from 127.0.0.0/255.0.0.0
</Location>


以上
スポンサーサイト
コメント(0)   2009.05.10    [ Myカテゴリ:技術の話 ]

コメントの投稿













管理者にだけ表示を許可する

Template Designed By
ぐらいんだぁ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。