設定
4D Webサーバーの設定には、セキュリティパラメーター、リスニングポート、デフォルトのパス、およびサーバーの機能を網羅するさまざまなオプションが含まれます。 4D ではすべての設定にデフォルト値を用意しています。
設定をおこなう場所
4D Webサーバーの設定には、スコープやサーバーに応じた様々な方法があります:
設定場所 | スコープ | 使用する Webサーバー |
---|---|---|
webServer オブジェクト | 一時的 (カレントセッション) | コンポーネントWebサーバーを含む、あらゆる Webサーバー |
WEB SET OPTION または WEB XXX コマンド | 一時的 (カレントセッション) | メインサーバー |
ストラクチャー設定 ダイアログボックス (Web ページ) | 永続的 (全セッション、ディスク上に保存) | メインサーバー |
設定できる場所が限られる設定も一部存在します。
キャッシュ
設定できる場所 | 名称 | コメント |
---|---|---|
設定ダイアログボックス | オプション (I) ページ / 4D Webキャッシュを使用する | |
設定ダイアログボックス | オプション (I) ページ / ページキャッシュサイズ |
Webページキャッシュの有効化と設定をおこないます。
4D Webサーバーにはキャッシュがあり、スタティックページ、GIF、JPEG (<512 kb)、そしてスタイルシート (.css ファイル) などがリクエストされると、メモリにロードされます。 キャッシュの利用は、スタティックページの送信時に Webサーバーのパフォーマンスを大幅に向上します。 キャッシュはすべての Webプロセスで共有されます。 キャッシュが有効化されている場合、4D Webサーバーは、ブラウザーからリクエストされた静的ページをまずキャッシュ内で探します。 ページが見つかれば、それを送信します。 見つからない場合、4D はディスクからページを読み込み、キャッシュに格納します。
キャッシュのサイズは、ページキャッシュサイズ エリアで変更できます。 設定する値は、スタティックページのサイズや数、およびホストマシンで利用可能なリソースによります。
Webデータベースを利 用する間、
WEB GET STATISTICS
コマンドを使用してキャッシュのパフォーマンスを検証できます。 たとえば、キャッシュ利用率が 100% に近い場合、キャッシュに割り当てたメモリ量を増やすことを考慮します。 [/4DSTATS] と [/4DHTMLSTATS] の URL も、キャッシュの状態を知るのに使用できます。
証明書フォルダー
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | certificateFolder | テキストプロパティ (start() 関数の settings パラメーターと使用する場合は、4D.Folder オブジェクトも使用可能) |
Webサーバー用の TLS証明書ファイルが置かれているフォルダーです。
4D または 4D Server のデフォルトでは、これらのファイルはProject フォルダー の隣に配置する必要があります。
4D をリモートモードで使用する場合、これらのファイルは、リモートマシン上のデータベースのローカルリソースフォルダーに配置されている必要があります (Get 4D folder
コマンドの 4D Client Database Folder
の項を参照ください)。 これらのファイルはリモートマシンに手動でコピーする必要があります。
TLS 証明書ファイルは、key.pem (秘密の暗号鍵を含むドキュメン ト) と cert.pem (証明書を含むドキュメント) です。
文字コード
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | characterSet | MIBEnum 整数、または名称の文字列 |
WEB SET OPTION | Web character set | MIBEnum 整数、または名称の文字列 |
設定ダイアログボックス | オプション (II) ページ / 文字コード | ポップアップメニュー |
4D Webサーバーが使用する文字セットを定義します。 デフォルト値は OS の言語に依存します。
この設定は、クイックレポートを HTMLフォーマットで書き出す際にも使用されます。
暗号リスト
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | cipherSuite | テキスト |
セキュアプロトコルに使用される暗号リストです。Webサーバーが実装する暗号アルゴリズムの優先順位を設定します。 コロン区切りの文字列として設定 できます (例: "ECDHE-RSA-AES128-...")。 詳細は Open SSL サイトの ciphers ページ を参照ください。
4D が使用するデフォルトの暗号リストは、
SET DATABASE PARAMETER
コマンドを使用してセッションごとに変更することができます。この場合、変更は 4Dアプリケーション全体に適用されます (Webサーバー・SQLサーバー・クライアント/サーバー接続、HTTPクライアント、セキュアプロトコルを使用するすべての 4Dコマンドを含む)。
CORS設定
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | CORSSettings | オブジェクトのコレクション (CORSサービスで許可されたホストとメソッドの一覧) |
WEB SET OPTION | Web CORS settings | オブジェクトのコレクション (CORSサービスで許可されたホストとメソッドの一覧) |
設定ダイアログボックス | オプション (II) ページ / ドメイン名 および 許可されたHTTPメソッド | 新しいドメインとメソッドを許可するには [+] ボタンをクリックして追加します。 |
CORSサービスで許可され たホストとメソッドの一覧。
ドメイン名 (hostプロパティ)
CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています:
- 192.168.5.17:8081
- 192.168.5.17
- 192.168.*
- 192.168.*:8081
- http://192.168.5.17:8081
- http://*.myDomain.com
- http://myProject.myDomain.com
- *.myDomain.com
- myProject.myDomain.com
- *
許可された HTTPメソッド (methodsプロパティ)
対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます:
- GET
- HEAD
- POST
- PUT
- DELETE
- OPTIONS
- TRACE
- PATCH
メソッド名はセミコロン区切りで指定します(例: "post;get")。 methods が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。
参照
デバッグログ
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | debugLog | 数値 |
WEB SET OPTION | Web debug log | 数値 |
Webサーバーの HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_nn.txt (nn はファイル番号)) の状態を指定します。 このログファイルは、Webサーバーに関連する問題をデバッグするのに便利です。 ログには、各リクエスト・レスポンスが rawモードで記録されます。 ヘッダーを含むリクエスト全体が記録され、オプションでボディ部分も記録することができます。
値 | 定数 | 説明 |
---|---|---|
0 | wdl disable | Web HTTP debug log は無効化されています |
1 | wdl enable without body | Web HTTP debug log 有効、リクエスト本文なし (本文サイズあり) |
3 | wdl enable with response body | Web HTTP debug log 有効、レスポンスの本文のみ |
5 | wdl enable with request body | Web HTTP debug log 有効、リクエストの本文のみ |
7 | wdl enable with all body parts | Web HTTP debug log 有効、リクエストおよびレスポンスの本文あり |
デフォルトホームページ
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | defaultHomepage | テキスト |
WEB SET HOME PAGE | Webプロセス毎に異なる設定が可能 | |
設定ダイアログボックス | 設定ページ / デフォルトホームページ |
Webサーバーのデフォルトホームページを指定します。 このページはスタティックでもセミダイナミックでも可能です。
Webサーバーの初回起動時には、4D はデフォルトで "index.html" という名前のホームページを作成し、HTMLルートフォルダーに置きます。 この設定を変更しない場合、Webサーバーに接続するブラウザーには以下のようなページが表示されます:
デフォルトホームページを変更するには、パスを "デフォルトホームページ" エリアに入力します。
- パスは、デフォルトHTMLルート からの相対パスで設定しなければなりません。
- パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。
- パスはスラッシュ ("/") で始まったり終わったりしてはいけません。
たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。
デフォルトホームページを指定しない場合、On Web Connection
データベースメソッドが呼び出されます。 この場合には、プロシージャーでリクエストを処理するのは開発者の役割です。
CORSを有効化
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | CORSEnabled | ブール; CORSを有効化するには true (デフォルト値は false) |
WEB SET OPTION | Web CORS enabled | 0 (デフォルト値; 無効) または 1 (有効) |
設定ダイアログボックス | オプション (II) ページ / CORSを有効化 | デフォルトではチェックなし |
4D Webサーバーは、クロス オリジンリソースシェアリング (CORS) を実装しており、これによって別ドメインにて提供されている特定の Webページが、REST などを使用した XHRコールを介してカレントWebアプリケーションのリソースにアクセスできるようにすることが可能です。 セキュリティ上の理由により、"ドメイン間" のリクエストはブラウザーレベルでデフォルトで禁止されています。 有効化されている場合、ドメイン外 Webページからの XHRコール (RESTリクエストなど) をアプリケーションにおいて許可することができます (CORSドメインリストに許可されたアドレスのリストを定義する必要があります。 有効時に、許可されていないドメインやメソッドがサイト間リクエストを送信した場合、"403 - forbidden" エラーレスポンスによって拒否されます。
無効化されている場合 (デフォルト) には、CORS で送信されたサイト間リクエストはすべて無視されます。
CORS についての詳細は、Wikipedia のCross-origin resource sharing ページを参照ください。
参照
HTTPを有効化
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | HTTPEnabled | ブール |
WEB SET OPTION | Web HTTP enabled | |
設定ダイアログボックス | 設定ページ / HTTPを有効化 |
安全でない接続を Webサーバーが受け入れるかどうかを示します。
HTTPSを有効にする
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | HTTPSEnabled | ブール |
WEB SET OPTION | Web HTTPS enabled | |
設定ダイアログボックス | 設定ページ / HTTPSを有効にする |
Webサーバーがセキュアな接続を受け入れるか受け入れないかを指定します。 このオプションは TLSプロトコル で説明しています。
HSTSを有効にする
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | HSTSEnabled | ブール; HSTSを有効化するには true (デフォルト値は false) |
WEB SET OPTION | Web HSTS enabled | 0 (デフォルト値; 無効) または 1 (有効) |
HTTP Strict Transport Security (HSTS) の状態です。
HTTPSを有効 にした場合、同時に HTTPも有効になっていると、ブラウザー上では HTTPS と HTTP を切り替えることができることに注意が必要です (たとえば、ブラウザーのアドレスバーで、ユーザーは "https" を "http" に置き換えることができます)。 HTTP へのリダイレクトを禁止するには、HTTPを無効 にすることもできますが、この場合、クライアントの HTTPリクエストに対してエラーメッセージが表示されてしまいます。
HSTS によって、4D Webサーバーはブラウザーに対し、セキュアな HTTPS接続のみを許可すると宣言できます。 HSTS を有効にすると、4D Webサーバーはすべてのレスポンスヘッダーに HSTS 関連の情報を自動的に追加します。 4D Webサーバーからの初回レスポンスを受け取った際にブラウザーは HSTS情報を記録し、以降の HTTPリクエストは自動的に HTTPSリクエストに変換されます。 ブラウザー側でこの情報が保存される時間は HSTS max age 設定によって指定されます。
HSTS のためには、サーバー上で HTTPS が有効になっていなくてはなりません。 また、クライアントの初回接続を許可するために、HTTP も有効 でなくてはなりません。
現在の接続モードは、
WEB Is secured connection
コマンドで取得できます。
HSTS Max Age
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | HSTSMaxAge | 数値 (秒単位) |
WEB SET OPTION | Web HSTS max age | 数値 (秒単位) |
新規クライアント接続ごとに HSTS がアクティブな最長時間 (秒単位) を指定します。 この情報はクライアント側で指定された時間のあいだ保存されます。 デフォルト値は 63072000 (2年)。
警告: HSTS が有効な間、クライアントの接続はこのメカニズムを使用し続けます。 アプリケーションをテストする際には、セキュアな接続とセキュアでない接続を必要に応じて切り替えることができるように、短い時間を設定することが推奨されます。
HTTP圧縮レベル
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | HTTPCompressionLevel | |
WEB SET OPTION | Web HTTP compression level | Web および Webサービスに適用されます |
4D Webサーバーの HTTP圧縮通信 (クライアントリクエストまたはサーバーレスポンス) における圧縮レベル。 この設定を使って、実行速度を優先するか (圧縮少)、それとも圧縮レベルを優先するか (速度減) を指定し、通信を最適化することができます。 適切な値は、通信データのサイズとタイプによって異なります。
1 から 9 の値を指定します (1 が低圧縮、9 が高圧縮)。 -1 を指定すると、圧縮速度と圧縮率の妥協点が得られます。 デフォルトの圧縮レベルは 1 (低圧縮) です。
HTTP圧縮のしきい値
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | HTTPCompressionThreshold | |
WEB SET OPTION | Web HTTP compression threshold |
最適化されたHTTP通信のフレームワークにおける、HTTP圧縮のしきい値 (バイト単位)。 このサイズ未満のリクエストについては、通信が圧縮されません。 この設定は、通信サイズが 小さい場合、圧縮に処理時間が費やされるのを避けるのに有用です。
サイズを数値 (バイト単位) で指定します。 デフォルトのしきい値は 1024 バイトに設定されています。
HTTP ポート
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | HTTPPort | 数値 |
WEB SET OPTION | Web port ID | |
設定ダイアログボックス | 設定ページ / HTTPポート |
HTTP接続を受け付ける IP (TCP) ポート番号。 デフォルトで、4D は通常の Web HTTPポート (TCPポート) 番号である 80番を使用して Webアプリケーションを公開します。 他の Webサービスによってこのポート番号が既に使用されている場合、4D が使用する HTTPポート番号を変更する必要があります。
macOS では、HTTPポートを変更することで、rootユーザーでなくても Webサーバーを開始することができるようになります (macOS での Helperツール 参照)。
デフォルトでない HTTPポート番号を使用して公開された Webアプリケーションに接続するには、Webブラウザーで入力するアドレスにポート番号を含めなければなりません。 アドレスの後にコロンに続けてポート番号を指定します。 たとえば、HTTPポート番号 8080を使用する場合、"123.4.567.89:8080" のように書きます。
警告: デフォルトの TCPポート番号 (標準モードで 80、HTTPSモードで 443) 以外を指定する場合、同時に使用する他のサービスのデフォルトポート番号を使わないよう注意が必要です。 たとえば、Webサーバーマシンで FTPプロトコルを使用する計画である場合、このプロトコルのデフォルトである TCPポート 20 と 21 を使用してはいけません。 256 より下のポート番号は、well-known サービスに予約されています。また、256 から 1024 は UNIXプラットフォーム由来のサービスに予約されています。 セキュリティのため、これらの数値よりも上、たとえば 2000台や 3000台などを指定します。
0 を指定すると、4D はデフォルトの HTTPポート番号 80を使用します。
HTTP Trace
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | HTTPTrace | ブール; デフォルトは false |
WEB SET OPTION | Web HTTP TRACE | 数値; デフォルトは 0 (無効) |
4D Webサーバーの HTTP TRACE メソッドを有効化します。 セキュリティ上の理由により、4D Webサーバーはデフォルトで HTTP TRACE リクエストをエラー405 で拒否します。 必要に応じて有効化された場合、HTTP TRACE リクエストに対して Webサーバーは、リクエスト行、ヘッダー、および本文を返します。
HTTPS ポート
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | HTTPSPort | 数値 |
WEB SET OPTION | Web HTTPS port ID | |
設定ダイアログボックス | 設定ページ / HTTPSポート |
TLS を介した HTTPS接続を受け付ける IPポート番号。 デフォルトで HTTPSポート番号は 443です。 ポート番号に関する詳細については、HTTP ポート を参照ください。
非動作プロセスのタイムアウト
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | inactiveProcessTimeout | |
WEB SET OPTION | Web inactive process timeout | |
設定ダイアログボックス | オプション (I) ページ / 非動作プロセスのタイムアウト | スライダー |
セッションと紐づいた非アクティブWebプロセスのタイムアウト時間 (分単位) を設定します。 すると、On Web Close Process
データベースメソッドが呼び出され、セッションのコンテキストは削除されます。
デフォルト値: 480分 (デフォルト値に戻すには 0 を指定します)
非アクティブセッションタイムアウト
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | inactiveSessionTimeout | |
WEB SET OPTION | Web inactive session timeout |
非アクティブセッションのタイムアウト時間 (分単位) を cookie に設定します。 タイムアウト時間が経過するとセッションcookie が無効になり、HTTPクライアントによって送信されなくなります。
デフォルト値: 480分 (デフォルト値に戻すには 0 を指定します)
リクエストを受け付ける IPアドレス
設定できる場所 | 名称 | コメント |
---|---|---|
webServer オブジェクト | IPAddressToListen | |
WEB SET OPTION | Web IP address to listen | |
設定ダイアログボックス | 設定ページ / IPアドレス | ポップアップメニュー |
4D Webサーバーが HTTPリクエストを受け付ける IPアドレスを指定できます (4Dローカルおよび 4D Server)。
デフォルトでは、特定のアドレスが定義されていないため (設定ダイアログボックスでは 任意 の値)、サーバーはすべての IPアドレスに応答します。 特定のアドレスを指定すると、サーバーはこの IPアドレスへのリクエストにのみ応答します。 この機能は複数の TCP/IPアドレスが設定されたマシン上で動作する 4D Webサーバーのためのものです。 これはしばしば、インターネットホストプロバイダーで使用されます。
とりうる値: IPアドレス文字列。 IPv6 文字列フォーマット (例: "2001:0db8:0000:0000:0000:ff00:0042:8329") と IPv4 文字列フォーマット (例: "123.45.67.89") の両方がサポートされます。
IPv6 のサポートについて
- TCPポートが使用済みでも警 告は出ません
サーバーが応答する IPアドレスが "任意" に設定されていた場合、TCPポートが他のアプリケーションで使用されていても、それはサーバー起動時に指摘されません。 IPv6 アドレスのポートが空いているため、この場合 4D Server はどのようなエラーも検知しません。 しかしながら、マシンの IPv4アドレスを使用、またはローカルアドレス 127.0.0.1 を使用してアクセスすることは不可能です。
定義されたポートで 4D Server が反応していないようであれば、サーバーマシンで [::1] のアドレスを試してみてください (IPv6 における 127.0.0.1 と同義です。他のポート番号をテストするには [:portNum] を追加してください)。 4D が応答するようであれば、IPv4 のポートを他のアプリケーションが使用している可能性が高いです。
-
IPv4-マップされた IPv6アドレス
プロセスを標準化するために、4D では IPv4アドレスの標準ハイブリッド表示を IPv6 で提供しています。 これらのアドレスは IPv6フォーマットにおいて 96ビットの接頭辞付きで書かれ、その後に IPv4ドット区切り表記で書かれた 32ビットが続きます。 たとえば、::ffff:192.168.2.34 は、192.168.2.34 という IPv4アドレスを表します。 -
ポート番号の表記
IPv6 記法はコロン (:) を使用するので、ポート番号を追加するときには混乱を招く恐れがあることに注意が必要です。たとえば:
2001:0DB8::85a3:0:ac1f:8001 // IPv6アドレス
2001:0DB8::85a3:0:ac1f:8001:8081 // ポート 8081 指定の IPv6アドレス
混乱を避けるため、 IPv6アドレスをポート番号と併記する際には、以下の様に [ ] でアドレスを囲う記法が推奨されます:
[2001:0DB8::85a3:0:ac1f:8001]:8081 // ポート 8081 指定の IPv6アドレス