画像のキャッシュ
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 を導入です。
理由は、tomcatとapacheの連携時に必要なライブラリmod_jkを利用する為です。
現在、mod_jkは Apache2 と Apache2.2 のバイナリが公開されています。
※mod_jk は tomcatの TomcatConnectorsよりダウンロードできます。
だから、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サーバーに割り振る値を設定します。
動作確認
Webサーバーに指定したIPが割り振られているか確認する。
サーバーを再起動してもIPが割り振られないことがあります。
そんなときは、コマンドプロンプトより「ipcong/renew」を打つことにより、IPを再取得します。
このコマンドを打っても、まだIPが設定値とことなる場合は、MACアドレスが間違っています。
再度MACアドレスの取得・CTCの設定および、反映を確認して下さい。