JavaEEに挑戦。Glassfishでアプリケーションを仮想ホストに割り当て1
まだ、下記の情報はまだ成功していません。行う場合は自己責任でお願いします。
PHPからJavaEEに挑戦して間もないけど、JavaEEは大規模な案件で使われる事が多いらしく、バーチャルホストでマルチドメインを実現するような情報が乏しいですね。でもでもでも、人生には時間に限りがありますので、残りの人生Javaに捧げたいと思っています(だって、もうこれ以上プログラミング言語勉強するの嫌だもん・・・)ので小規模だろうが中規模だろうがJavaEEでWebアプリケーションを作ってみようと思うのです。ただのホームページでもJSFのテンプレートエンジンの利用だけで作ってみたいと思っています。
たぶん、突っ走る方向間違っていますが、心優しい方、コメントで突っ込んでください。良い勉強になりますので、ぜひお願いします。
今回、Glassfishでアプリケーションを仮想ホストに割り当てでCATCHIE BLOGを参考にさせていただきました。貴重な情報ありがとうございます。
やりたいことは
http://ホスト名またはipアドレス:8080/独自ドメイン名(アプリケーション名)/
→http://独自ドメイン名
つまり、http://domain.sakura.ne.jp:8080/sample.com
→http://sample.comにしてみたいのです。
環境は
レンタルサーバー: さくらVPS1G
Webサーバー: Apache
アプリケーションサーバー: Glassfish4.1
OS: CentOS
まずはローカル(windows)で手軽に試してみます。Webは後で
①hostsファイルへの記述
ここら辺にありますC:\Windows\System32\drivers\etc\hosts
以下を追記。たぶん、ローカル上のDNSへの登録みたいなものです。
127.0.0.1 localhost.localdomain localhost sample.com
②glassfishを起動して、管理コンソールへhttp://localhost:4848にアクセス
NetBeansからglassfishを立ち上げ、サービス→GlassFish Serverで右クリック→ドメイン管理コンソールを開きます。
glassfishサーバーが立ちあがっていたら、http://localhost:4848に直接アクセスしてもかまいません。
③ネットワークリスナーの定義
ネットワークリスナーを探してみたら、default-configとserver-configの中にそれぞれ2つありました。stachoverflowに書かれていました。「defaultはテンプレートとして使う、サーバーの設定がしたいのならserver-configに行け」うーん、良く分かりませんが、他のページは目的は違うのですが、server-configで設定してたので、server-configにします。
出来るだけ、同じ値にしてみました。最後にOKをおしてね。
てか、ネットワークリスナーってなんだろうね?何度か読んだんだけど、いまいちピンとこないなぁ。検索用→glassfish ネットワークリスナー
④仮想サーバーの設定
新規を選択。
⑤ネットワークリスナーとデフォルト仮想サーバーの関連付け
Configurations>server-config>Network Config>Network Listeners>jkを選択
HTTPタグをクリック。
なんかMax Post Sizeがマイナスの値を取っていたので、int値を入れんかい!と警告がでました。なんかようわからんけど4096をいれてやりました。
⑥仮想サーバー「server1」にWarファイルを配備
Applicationを選択、配備をクリック。
ハロー.warをオラクルさんが配ってましたのでこちらで試してみます。
管理コンソールでの作業は終わりだそうです。
⑦apacheのバーチャルホストを設定してみます。たぶん、/etc/httpd/conf.d/はシングルドメイン用?なのでC:\xampp\apache\conf\extra\http-vhosts.confに設定してみます。
<VirtualHost *:80> ServerName sample.com RewriteEngine On RewriteCond %{HTTP_HOST} ^sample.com$ RewriteRule ^/(.*) ajp://server1.sample.com:8009/ $1 [P] </VirtualHost>
よし、どーーーーーーーーーーーーなるのでしょうか?
Apacheが動かなくなりました。また、か~~~~~い。
apacheのバーチャルホストを設定を見直さないといけませんね。
取りあえず、昼ごはん食ってから、もう一度トライ!!
気を取り直しまして・・・。よくよく比較すると、やっぱり記述ミスが・・・。
http-vhosts.confファイルの記述は
<VirtualHost *:80> ServerName sample.com RewriteEngine On RewriteCond %{HTTP_HOST} ^sample.com$ RewriteRule ^/(.*) ajp://server1.sample.com:8009/$1 [P] </VirtualHost>
ですね。・・・とりあえず、apacheは起動しました。
そして、URLにhttp://sample.comを入れると・・・・・
sample.comさん、こんにちは~。他人のホームページにお邪魔しちゃいました。
このブログを見られた方、大変申し訳ありませんが・・・・。またまた、失敗です。
追記:hostsファイルにsampleじゃなくてtestと書いて間違ってました。
今度こそ、
127.0.0.1 localhost.localdomain localhost sample.com
を追加して。
URLにhttp://sample.comを入れると・・・・・
お~~~~~なんかエラーが出た。早速、調査してみよう。
http://oshiete.goo.ne.jp/qa/1463057.html
ここの情報をもとにproxy設定を行ってみようと思います。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
これらをコメントアウトして
ProxyRequests Off <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass http://localhost:8009/sample.com http://sample.com/ ProxyPassReverse http://localhost:8009/sample.com http://sample.com/
apacheを再起動させて、確認。
変わらず・・・。
今回は、もう分かりません。pod_proxyというのが気になるので、
別のブログを参考にして、やってみたいと思います。
ここまで、我慢強くみられた方、本当に申し訳ございません。
次回はきっとうまくいくはず。また、記事を書きますね。
追記:なぜかglassfishサーバーの管理コンソール画面が立ち上がらなくなりました。結構エラーが出まくってますね。新しく、glassfishを入れなおします。今度はV3で日本語版にしてみよう!!