データベース設定のWeb ページで定義されたパラメタを使用して、4D Webサーバの動作を設定できます。この節ではこのページの設定 、オプション (I) と (II) について説明します。
ログ ページはWebサイトに関する情報 で説明しています。.Webサービス ページは"Design Reference"マニュアルで説明しています。互換性に関する注意: 以前のバージョンの4Dにある特定のWebメカニズムは廃止予定となっています (例えば未知のURLから"/"を取り除かない)。互換性の目的で、これらのメカニズムは変換されたデータベースで利用可能です。この場合、データベース設定の互換性 ページで必要に応じて無効にできます。
4Dアプリケーションの起動時にWebサーバを起動するか指定します。このオプションはWebサーバ設定と接続管理 で説明しています。
デフォルトで、4Dは通常のWeb TCPポート番号である80番を使用してWebデータベースを公開します。他のWebアプリケーションによってこのポート番号が既に使用されている場合、4Dが使用するポート番号を変更する必要があります。Mac OS Xでは、TCPポート番号を変更することで、rootユーザを有効にしなくてもWebサーバを開始することができます。(Webサーバ設定と接続管理 参照) ポート番号を変更するには、TCPポート 入力エリアに適切な値 (同じマシン上で動作する他のTCP/IPサービスが使用していないTCPポート番号)を指定します。
Note: 0を指定すると、4DはデフォルトのTCPポート番号80を使用します。
デフォルトでないTCPポート番号を使用して公開されたWebサーバに接続するには、Webブラウザに入力するアドレスに使用するポート番号を含めなければなりません。アドレスの後にコロンに続けてポート番号を指定します。例えばTCP番号8080を使用する場合、“123.4.567.89:8080”のように書きます。
警告: デフォルトのTCPポート番号 (標準モードで80、SSLモードで443) 以外を使用する場合、同時に使用する他のサービスのデフォルトポート番号を使用しないよう注意してください。例えば、WebサーバマシンでFTPプロトコルを使用する計画である場合、(あなたが何を行おうとしているか分かっていないのであれば) このデフォルトポートであるTCPポート20と21は使用してはいけません。標準のTCPポート番号割り当てを知るには、4D Internet CommandsのAppendix B - TCPポート番号 の節を参照してください。256より下のポート番号はwell-knownサービスに予約されています。256から1024はUNIXプラットフォーム由来のサービスに予約されています。互換性のためにこれらの数値よりも上、例えば2000台や3000台などを指定します。
WebサーバがHTTPリクエストを受け付けるIPアドレスを指定できます。
注: 4D v14 以降、データベース設定の"IPアドレス" リストにてすべて が選択されていた場合は、 HTTP サーバーは自動的にIPv6アドレスをサポートします。詳細な情報に関しては、 IPv6のサポート を参照して下さい。
デフォルトで、サーバはすべてのIPアドレスへのリクエストに応答します (
すべて オプション)。
ドロップダウンリストにはマシンで利用可能なIPアドレスがリストされます。特定のアドレスを指定すると、サーバはこのIPアドレスへのリクエストにのみ応答します。
この機能は複数のIPアドレスが設定されたマシン上で動作する4D Webサーバのためのものです。これはしばしばインターネットホストプロバイダで使用されます。
このようなマルチホーミングシステムの実装はWebサーバマシン上での特定の設定を必要とします:
Mac OSにセカンダリのIPアドレスをインストールする
Mac OS上でマルチホーミングを設定するには:
TCP/IP コントロールパネルを開きます。 設定 ポップアップメニューから手動 オプションを選択します。テキストファイルを"Secondary IP Addresses"という名称で作成し、SystemフォルダのPreferencesサブフォルダに保存します。 "Secondary IP Addresses"ファイルの各行にセカンダリIPアドレスと、オプションでサブネットマスクおよびセカンダリIPアドレス用のルータアドレスを記述します。 詳細はApple社のドキュメントを参照してください。
WindowsにセカンダリのIPアドレスをインストールする
Windows上でマルチホーミングを設定するには:
以下のコマンド (またはWindows OSごとの同様の機能) を選択します: スタート メニュー > コントロールパネル > ネットワークとインターネット接続 > ネットワーク接続 > ローカルエリア接続 (プロパティ) > インターネットプロトコル (TCP/IP) > プロパティ ボタン > 詳細 ... ボタン。"詳細 TCP/IP 設定"ダイアログが表示されます。 "IPアドレス"エリアの追加.. . ボタンをクリックし、IPアドレスを追加します。 最大5つまでIPアドレスを定義できます。これを行うにはシステム管理者に問い合わせる必要があります。詳細はWindowsのドキュメントを参照してください。
Webサーバがセキュアな接続を受け入れるか受け入れないかを指定します。このオプションはTLSプロトコルの使用 で説明します。
SSL (HTTPSプロトコル) を使用したセキュアなHTTP接続に対してWebサーバが使用するTCPポート番号を指定できます。デフォルトでHTTPSポート番号は443です。 この番号の変更を検討する主な理由は2つあります:
セキュリティ: 攻撃者は標準のTCPポート (80 and 443) に集中して攻撃を仕掛けてくるかもしれません。 Mac OS Xでは、特定のポート番号 (0 から 1023) を使用してWebサーバを起動するには、特別なアクセス権を必要とします。rootユーザだけがこれらのポートを使用するアプリケーションを起動できます。標準ユーザがWebサーバを起動するには、TCPポート番号の変更が一つのソリューションとなります (Webサーバ設定と接続管理 の節参照)。 有効であれば何番でも渡すことができます (Mac OS X 上でのアクセス上の制限を避けるためには、1023より上の番号を指定します)。TCPポート番号に関する詳細は、先述の “TCPポート番号” を参照してください。
このオプションを使用して/4DSYNC URLによるHTTP同期サポートを制御します。この機能については接続セキュリティ で説明されています。
Webサイトファイルのデフォルトの位置を指定し、ディスク上でその場所より階層的に上のファイルにアクセスできない場所を指定します。このオプションは接続セキュリティ の節で説明しています。
データベースに接続するすべてのブラウザー用にデフォルトホームページを指定できます。このページはスタティックでもセミダイナミックでも可能です。
デフォルトでWebサーバーが最初に起動されたとき、4Dは“index.html”という名前のホームページを作成し、HTMLルートフォルダーに置きます。この設定を変更しない場合、Webサーバーに接続するブラウザーには以下のようなページが表示されます:
デフォルトホームページを変更するには、ルートフォルダーの“index.html”ページを置き換えるか、使用するページのアクセス相対パスを"デフォルトホームページ"エリアに入力します。 アクセスパスはデフォルトHTMLルートからの相対パスで設定しなければなりません。 データベースのマルチプラットフォーム互換性を確保するために、4D Webサーバーは特別なアクセスパスの記法を使用します。シンタックスルールは以下のとおりです:
フォルダーはスラッシュ (“/”) で区切ります。 アクセスパスはスラッシュ (“/”) で終わっていてはなりません。 フォルダー階層を1レベル上がるには、フォルダー名の前に “../” を記述します。 アクセスパスはスラッシュ (“/”) で始まっていてはいけません。 例えばデフォルトホームページを、デフォルトHTMLルートフォルダー内のWebサブフォルダーにある“MyHome.htm”にする場合、“Web/MyHome.htm”と入力します。
注 : WEB SET HOME PAGE コマンドを使用して、Webプロセスごとにデフォルトホームページを設定できます。
デフォルトのカスタムホームページを指定しない場合、On Web Connectionデータベースメソッド が呼び出されます。プロシージャーでリクエストを処理するのは開発者の役割です。
4D Webにはキャッシュがあり、スタティックページ, GIF, JPEG (<512 kb) そしてスタイルシート (.css files) などがリクエストされると、メモリにロードされます。 キャッシュの利用は、スタティックページの送信時にWebサーバのパフォーマンスを劇的に向上します。
キャッシュはすべてのWebプロセスで共有されます。環境設定でキャッシュのサイズを設定できます。デフォルトでスタティックページのキャッシュは無効になっています。有効にするには、4D Webキャッシュを使用する オプションをチェックします。
ページキャッシュサイズ エリアでキャッシュのサイズを変更できます。この設定はスタティックページのサイズや数、およびホストマシンで利用可能なリソースによります。
注: Webデータベースを利用する間、WEB GET STATISTICS コマンドを使用してキャッシュのパフォーマンスを検証できます。例えばキャッシュ利用率が100%,に近い場合、キャッシュに割り当てたメモリ量を増やすことを考慮します。 /4DSTATS と /4DHTMLSTATS URLも、キャッシュの状態を知るために使用できます。Webサイトに関する情報 を参照してください。
キャッシュが有効になると、4D Webサーバはブラウザからリクエストされたページをまずキャッシュから探します。ページが見つかると、即座にそれを送信します。見つからなければ、4Dはディスクからページをロードし、それをキャッシュに置きます。 キャッシュがいっぱいで、新しいページをキャッシュに置く必要がある場合、4Dは最も使われていないページの中から、もっとも古いページをアンロードします。
いつでもページやイメージをキャッシュからクリアできます (例えばスタティックページを更新し、キャッシュにそれをリロードさせたい場合)。 これを行うには、キャッシュクリア ボタンをクリックします。キャッシュは即座にクリアされます。
注: 特殊なURL/4DCACHECLEAR を使用することもできます。
サーバー上で、活動していないWebプロセスを閉じるための最大タイムアウト時間を設定できます。
このオプションは、サーバー上で同時に開くことのできるすべてのWebプロセスの最大同時接続数を設定します(標準Webプロセス、またはプールされたプロセスなどすべて)。このパラメターは、異常な数のリクエストによる4D Webサーバの飽和状態を避けるために使用します。
デフォルトでこの値は32000です。10から32000の値を設定できます。
最大Web同時接続数 (マイナス1) に達すると、4Dは新しいプロセスを作成せず、“Server unavailable” (ステータス HTTP 503 - Service Unavailable) を返信します。
注: Webの最大接続数はWEB SET OPTION コマンドで設定することもできます。
WebプロセスのプールはWebサーバーの応答性能を向上させます。リサイクルするプロセス数は最小値 (デフォルトで0) から最大値 (デフォルトで10) の間です。この数はSET DATABASE PARAMETER コマンドを使用して変更できます。Webプロセス最大同時接続数が変更されると、プール数の最大値が最大同時接続数を超えている場合は、最大同時接続数まで下げられます。
理論上は、Webプロセスの最大数は以下の式で求められます: 利用可能なメモリ÷Webプロセススタックサイズ 他のソリューションはランタイムエクスプローラでWebプロセスを監視することです。Webプロセスの現在数と、Webサーバが実行されてからの最大数が示されます。
(*) 4DがWebプロセスに割り当てるスタックサイズは、64-bit版で約512KB、32-bit版で約256KBとなっています(これらは概算値であり、コンテキストによって変動することがあります)。
4D HTTPサーバーによるユーザーセッションの自動管理内部メカニズムを有効にしたり無効にしたりします。このメカニズムについてはWebセッション管理 で説明しています。
4D v13以降に作成されたデータベースではデフォルトでこのメカニズムが有効になっています。他方互換性のため、v12以前のバージョンから変換されたデータベースでは無効になっています。この機能を利用するためには明示的に有効にしなければなりません。
このオプションが選択されていると、"一時的なコンテキストを再利用する"オプションも自動で選択され、ロックされます。
前のWebリクエストを処理するために作成されたWebプロセスを再利用することによって、4Dリモートモードで実行されているWebサーバーの動作を最適化できます。実際、4D WebサーバーはそれぞれのWebリクエストを処理するために専用のWebプロセスを必要とします。リモートモードでは必要に応じて、このプロセスはデータやデータベースエンジンにアクセスするために4D Serverに接続し増す。そしてプロセス独自の変数やセレクションを使用してコンテキストを作成しま す。リクエストの処理が終了すると、このプロセスは廃棄されます。 一時的なコンテキストを再利用する オプションがチェックされていると、リモートモードの4Dは作成された固有のWebプロセスを保守し、その後のリクエストで再利用します。プロセスの作成処理が省略されるため、Webサーバーのパフォーマンスが向上します。 他方このオプションを使用する場合、不正な結果が返されることを避けるために、4Dメソッド内で使用される変数をシステマチックに初期化するようにしてくだ さい。同様に、以前のリクエストで使用されたカレントセレクションやカレントレコードをアンロードする必要があります。注 :
自動セッション管理 が有効にされると、このオプションも選択されロックされます。実際セッション管理メカニズムはWebプロセスの再利用の原則に基づいています: 各Webセッションはセッションの寿命が有効である間、同じWebプロセスを使用して処理されます。異なるセッションでWebプロセスが共有されることはありません。セッションが終了するとプロセスは破棄され、再利用されることはありません。なのでこの場合セレクションや変数を初期化する必要はありません。このオプションはリモートモードの4D Webサーバーでのみ効果があります。ローカルモードの4Dでは (セッション管理を行うプロセスを除く) すべてのWebプロセスが使用後に終了されます。
パスワードを使用したWebサイトアクセス保護の設定を行います。このオプションは の節で説明しています。
デフォルトで、4D Webサーバはダイナミックおよびスタティックページの拡張文字を、HTML標準に基づき送信前に変換します。このようなページはブラウザで評価されます。 拡張文字を変換せずそのまま送信するようWebサーバを設定できます。このオプションにより、特にShift_JIS文字コード利用時の日本語のシステムで速度が向上します。
この設定を行うには、拡張文字をそのまま送信 オプションをチェックします。
スタンダードセット ドロップダウンリストを使用して、4D Webサーバが使用する文字セットを定義できます。デフォルトでは文字セットはUTF-8です。
注: この設定はクイックレポートをHTMLフォーマットで書き出す際にも使用されます(クイックレポートの出力 を参照して下さい)。
Keep-Alive接続を使用する オプションは、WebサーバのKeep-Alive接続を有効および無効にします。このオプショ ンはデフォルトで有効になっています。ほとんどの場合、通信が高速化されるため、この状態をお勧めします。WebブラウザがKeep-Alive接続をサ ポートしない場合、4D Webサーバは自動でHTTP/1.0にスイッチします。 4D WebサーバのKeep-Alive機能はすべてのTCP/IP接続 (HTTP, HTTPS) に関連します。しかしながらすべての4D Webプロセスで常にKeep-Alive接続が使用されるわけではないことに留意してください。あるケースでは、内部的な他の最適化機能が呼び出される ことがあります。Keep-Alive接続は特にスタティックページで有効です。
Keep-Alive接続を設定する2つのオプションがあります:
接続毎のリクエスト数 : ひとつのKeep-Alive接続におけるリクエストとレスポンスの最大数を設定します。接続あたりのリクエスト数を制限することで、サーバのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。 4D Webサーバをホストするマシンのリソースに応じて、デフォルト値 (100) を増減できます。タイムアウト : この値を使用して、Webブラウザからのリクエストが行われない状態で、Webサーバが開かれた接続を保守する最大の待ち秒数を設定します。この秒数が経過すると、サーバは接続を閉じます。接続が閉じられた後にWebブラウザがリクエストを送信すると、新しいTCP接続が作成されます。この動作はユーザからは見えません。