初心者からのJavaEEマスターへの道のり。

分からないところ、失敗したところや苦労したところを書いていこうと思います。出来れば、それらが解決するところまでかけたらいいなぁと思っています。心優しい方、いろいろと教えてください。

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で右クリック→ドメイン管理コンソールを開きます。
f:id:wozmagic:20150309122603p:plain
glassfishサーバーが立ちあがっていたら、http://localhost:4848に直接アクセスしてもかまいません。

③ネットワークリスナーの定義

ネットワークリスナーを探してみたら、default-configとserver-configの中にそれぞれ2つありました。stachoverflowに書かれていました。「defaultはテンプレートとして使う、サーバーの設定がしたいのならserver-configに行け」うーん、良く分かりませんが、他のページは目的は違うのですが、server-configで設定してたので、server-configにします。

f:id:wozmagic:20150309130149p:plain

出来るだけ、同じ値にしてみました。最後にOKをおしてね。

てか、ネットワークリスナーってなんだろうね?何度か読んだんだけど、いまいちピンとこないなぁ。検索用→glassfish ネットワークリスナー

④仮想サーバーの設定

f:id:wozmagic:20150309130830p:plain
新規を選択。

f:id:wozmagic:20150309131641p:plain

⑤ネットワークリスナーとデフォルト仮想サーバーの関連付け

Configurations>server-config>Network Config>Network Listeners>jkを選択
HTTPタグをクリック。

f:id:wozmagic:20150309132842p:plain

なんかMax Post Sizeがマイナスの値を取っていたので、int値を入れんかい!と警告がでました。なんかようわからんけど4096をいれてやりました。



⑥仮想サーバー「server1」にWarファイルを配備

Applicationを選択、配備をクリック。


ハロー.warをオラクルさんが配ってましたのでこちらで試してみます。

f:id:wozmagic:20150309134030p:plain

管理コンソールでの作業は終わりだそうです。

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を入れると・・・・・

f:id:wozmagic:20150309145611p:plain

sample.comさん、こんにちは~。他人のホームページにお邪魔しちゃいました。
このブログを見られた方、大変申し訳ありませんが・・・・。またまた、失敗です。


追記:hostsファイルにsampleじゃなくてtestと書いて間違ってました。
今度こそ、

127.0.0.1 localhost.localdomain localhost sample.com

を追加して。


URLにhttp://sample.comを入れると・・・・・


f:id:wozmagic:20150309150700p:plain


お~~~~~なんかエラーが出た。早速、調査してみよう。
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で日本語版にしてみよう!!