画像のキャッシュ

Servletにて、画像を作成するアプリケーションを作成しましたが、クライアントのキャッシュ機能によって、うまく画像が更新できませんでした。

そんなときは、画像のURLの引数を変更することにより、キャッシュ機能に対抗できます。


html側

<img src="xxx.png?ここを変更" />


そうなるように、servlet を実装すればOK。
つまり、

Date now = new Date();
Strig path = filepath + "?" + now.toString();
String img = "<img src=" + path + "/>";

と、まぁこんな感じで、htmlを記述すればservlet側はOKですね。

公開テスト

Webサーバーの公開におけるテストについて記述します。

Webサーバーとしての動作確認1(同じLAN内からの確認)

同じLAN内から動作確認することにより、ルーターの設定に関係なくWebサーバーにてApacheの設定がうまくいっているか調べます。
調べ方は、同じLAN内のPCより、

http://WebサーバーのIP/

にアクセスするだけです。
うまく、上記で確認したサイトが見れていればOK。見れない場合は、Webサーバーの設定がまずい状態です。

基本的には、Apacheの設定は、localhostで確認しているので、ここで疑うは、ポート80番があいているかどうかだと思います。
Windows XPの場合は、パーソナルファイアーウォールの設定を確認します。
コントロールパネル > windowsファイアウォールより設定を行います。

ポート80番をあけました。
ポートを空けた後、再度確認をしてみてはどうでしょう。

Webサーバーとしての動作確認2(WANからの確認)

外部からの動作確認。
ただし、これはLAN内のPCから動作確認はできません。

http://www.取得したドメイン.com/

としても、内部からは接続できません。
内部から接続すること自体は、DNSで設定すれば可能ですが、それでは意味はありません。
ここでは、確実に外部のPCからの確認をして下さい。

パソコンおやじさんのWWWサーバーのテストより、簡単な確認することはできますが、最終確認は、やはり外部から行うことを推奨します。

それでうまくいかない場合は

http://グローバルIP/

でアクセスしてみましょう。
それにより、問題の切り分けをおこなうことができます。

グルーバルIPでアクセスできるが、ドメインでアクセスできない場合は、 DDNS が問題になっていると思います。
コマンドプロンプトより 「nslookup 取得したドメイン」を実行して、グローバルIPと、実際にWebサーバーのもつグローバルIPとの比較を行ってください。

問題の切り分けができれば、解決への道は近いです。

Apache2の設定

WWWサーバーソフトである Apache の導入です。
これにより、外部に公開するディレクトリの操作及び、ポート指定をなくします。

Apacheのダウンロード・インストール

今回、Apacheには、Apache2 をインストールします。
Apacheには1.3、2.0、2.2 とありますが、今回は2.0 を導入です。
理由は、tomcatapacheの連携時に必要なライブラリmod_jkを利用する為です。

現在、mod_jkは Apache2 と Apache2.2 のバイナリが公開されています。
mod_jk は tomcatTomcatConnectorsよりダウンロードできます。

だから、2と2.2はどちらでも良かったんですが、2.0 をインストールしました。
Apacheのインストール・設定は、他のサイトで多くの文献があるので、詳細は割愛します。

NECのPCを使っている方への注意

NECでは、標準でApacheがインストールされています。よって、少し注意が必要です。
インストール後の確認で、http://localhost/ へアクセスすると「ドット・ゲートサ−ビス」というBasic認証がでることがあります。

私は、予めApacheをアンインストールしてから、Apache2をインストールしなおしました。
また、アンインストールしても、Apacheの設定ファイルは残るので、アンインストール後は必ず、設定ファイル(confディレクトリ)も削除した方が確実です。

動作確認

Apacheの動作確認

http://localhost/ にアクセスして動作確認です。
このあたりは、他サイトでの文献が充実しています。

windowsXPで行う場合、SKYPEが導入されているPCも注意が必要です。
Skypeではポート80番を使うので、Skypeを起動している状態で、Apacheを起動しようとするとエラーが発生します。
The requested operation has failed とエラーが表示されます。

対処としては、Skeypeを終了した後、再度Apacheを起動すれば問題なく起動します。
他にも、ポート80番を前もって起動しているアプリケーションがあった場合、同様の問題が発生すると思われます。

その他にも、公開に関する動作確認方法はまだありますが、それは、また別で記述します。

CTUの設定

NTT西日本フレッツ光 サービスにおいて、ルータの設定を行います。
一般的にはルーターの設定ですが、フレッツ光においては、CTUの設定を行う と表現します。

手順

  • DHCPサーバー機能設定の確認
  • DHCPサーバー機能設定(LAN側固定IP払い出し)の設定
  • 静的アドレス変換設定(ポート指定) の設定
  • 静的アドレス変換設定(ポート変換) の設定
  • ファイアウォールのルール設定
DHCPサーバー機能設定の確認


ここでは、払い出し開始IPアドレス払い出し個数 のみ確認しておきます。
ここでは、51番から、50個DHCPサーバーとして、可変のIPをふることができます。
Webサーバーを立てる際には、IPは固定にしておく必要があるので、前もって、どのIPを振り分けるか考えておきます。
今回は、DHCPサーバーによって、自動で降られることの無いIPを固定で割り当てて行きたいと思います。
IPは 192.168.24.101 としたいと思います。

DHCPサーバー機能設定(LAN側固定IP払い出し)の設定

先ほど割り振るIPを決めたので、ここでは、固定のIPを振ります。
まず、固定IPを振るには、MACアドレスが必要となります。
公開する予定のWebサーバーのコマンドプロンプトより [ipconfig/all] を実行します。

そこのPhysical Address の値をメモしておきます。


払い出しIPの部分に、先ほど決めたIP(今回は101)を設定し、
@の部分に、先ほど取得したMACアドレスを入れます。
これをすることにより、公開する予定のサーバーと固定の内部のIPを関連つけます。

静的アドレス変換設定(ポート指定) の設定

Webサーバーとしては、ポート80が通ることが必要となりますので、ルーターに対して、ポート80でのアクセスを許可させます。

ポート番号は 80 = http なので、上記設定でOKです。
LAN側端末IPアドレスには、先ほどのWebサーバーに割り振る値を設定します。

静的アドレス変換設定(ポート変換) の設定

これしないと、私の環境ではポート80番があきませんでしたので、記述しておきます。
細かい説明はわからないので省きます。

ファイアウォールのルール設定

ファイアウォールにて、ポート80でのWebサーバーへのアクセスを許可させます。

CTUの反映

反映をしないと、ルーターに設定が書き込まれないので、必ず反映をして下さい。

ファイアウォールの設定を更新すると、ルーターの再起動を行う必要があります。
誰かが電話中とかにやると、わるいので、ルーターの再起動前には、確認しておきたいですね。

動作確認

Webサーバーに指定したIPが割り振られているか確認する。

サーバーを再起動してもIPが割り振られないことがあります。
そんなときは、コマンドプロンプトより「ipcong/renew」を打つことにより、IPを再取得します。
このコマンドを打っても、まだIPが設定値とことなる場合は、MACアドレスが間違っています。
再度MACアドレスの取得・CTCの設定および、反映を確認して下さい。

ポート80があいているか確認する。

この確認をしたいのですが、私は apacheを導入してからの確認だったので、省きたいと思います。
しかし、ポートの確認は、ポートチェック【ポート開放確認】より、確認はできます。

WindowsXPの場合、windowsファイアウォール(パーソナルファイアウォール)の設定も影響します。
コントロールパネル > windowsファイアウォール 
より、パーソナルファイアウォールを開き、例外タブタブにて、ポートの追加等を行います。(80番をあけます)
細かい設定は、apacheの動作確認のときに説明します。

以上がCTUの設定となります。

WindowsでWebサーバー公開

自宅でWebサーバーを公開してみたので、その時のメモを残します。

目的

Webサーバーを公開し、tomcatapacheの連携を行い、Webアプリケーションを公開すること。

各種スペック等


サーバーが XP Home Edhition って。。て思うかも知れませんが、諸事情により、2000Serverが使えなくなり、その代用です。
しかし、このままではまずいので、後々、別のマシンでの公開手順も行いたいと思います。


IPアドレスの取得は Value Domain で行いました。DDNSも、ValueDomainで設定しました。

今後の予定

  • CTUの設定
  • Apache2の設定
  • Webサーバー公開テスト


一度に全て書くのは難しいので、順々に記述して行きたいと思います。
apacheのインストール、tomcatのインストール等は省きたいと思います。
その代わり、自分が他のサイト等みて、迷ったところ等は、記述してゆきます。