mod_proxy_ajpの巻
掲題のとおり.
今までTomcatのlocalhost:8080を叩いていたけれど,そろそろ綺麗なURLで開発したくなったので.
ただ,結構難あり.
例えば,http://ficus.localhost/へのリクエストを,http://localhost:8009/ficus/へリダイレクトしようと
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com ServerName ficus.localhost ProxyPass / ajp://localhost:8009/ficus </VirtualHost>
とか適当にやったら動くかなーって思ったけど,ちゃんと動かず.理由は簡単で,表示されたページのリンクが全部"ficus"付いちゃうから.
で,次善策としてmod_rewrite使って,
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com ServerName ficus.localhost RewriteEngine on RewriteRule ^/ficus/(.+) /$1 RewriteRule ^/(.*)$ ajp://localhost:8009/ficus/$1 [P,L] </VirtualHost>
とかしてみた.遅い・・・
balancerを使うといい!とあったので
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com ServerName ficus.localhost <Proxy balancer://ajp-balancer/ficus> BalancerMember ajp://localhost:8009/ficus </Proxy> RewriteEngine on RewriteRule ^/ficus/(.+) /$1 RewriteRule ^/(.+)\.(.+) balancer://ajp-balancer/$1.$2 [P,L] </VirtualHost>
としてみた.問題ナッシング.
というわけで,mod_jkさようなら!
・・・でもやっぱり,アプリケーション中ではURL中にstuvieって入っちゃうなぁ.かといって,RewriteRule ^/ficus/(.+) /$1をRedirect指定するとちゃんと動かなくなっちゃうし.
普通そういう使い方はしないのか知らん.mod_jkつかえってかー!fxxk