Skip to content

サーバーの作成

サーバーの作成

Ktorアプリケーションを作成する前に、アプリケーションをどのように

するかを考慮する必要があります。

  • 自己完結型パッケージとして

    この場合、ネットワークリクエストを処理するために使用されるアプリケーション

    エンジン
    ネットワークリクエストを処理するエンジンについて学びます。
    をアプリケーションの一部にする必要があります。 アプリケーションはエンジンの設定、接続、およびSSLオプションを制御できます。

  • サーブレットとして

    この場合、Ktorアプリケーションはサーブレットコンテナ(TomcatやJettyなど)内にデプロイできます。サーブレットコンテナがアプリケーションのライフサイクルと接続設定を制御します。

自己完結型パッケージ

Ktorサーバーアプリケーションを自己完結型パッケージとして提供するには、まずサーバーを作成する必要があります。 サーバーの設定には、サーバー

エンジン
ネットワークリクエストを処理するエンジンについて学びます。
(Netty、Jettyなど)、さまざまなエンジン固有のオプション、ホストとポートの値など、さまざまな設定を含めることができます。 Ktorでサーバーを作成して実行するには、主に2つのアプローチがあります。

  • embeddedServer関数は、 コード内でサーバーパラメータを設定 し、アプリケーションを素早く実行するためのシンプルな方法です。

  • EngineMainは、サーバーを設定するためのより高い柔軟性を提供します。 ファイル内でサーバーパラメータを指定 できるため、アプリケーションを再コンパイルせずに設定を変更できます。さらに、コマンドラインからアプリケーションを実行し、対応するコマンドライン引数を渡すことで必要なサーバーパラメータを上書きすることも可能です。

コード内での設定

embeddedServer関数は、

コード内
コード内でさまざまなサーバーパラメータを設定する方法を学びます。
でサーバーパラメータを設定し、アプリケーションを素早く実行するためのシンプルな方法です。以下のコードスニペットでは、サーバーを起動するためのパラメータとして
エンジン
ネットワークリクエストを処理するエンジンについて学びます。
とポートを受け取ります。以下の例では、Nettyエンジンを使用してサーバーを実行し、8080ポートでリスンします。

kotlin

完全な例については、 embedded-server を参照してください。

ファイル内での設定

EngineMainは、選択したエンジンでサーバーを起動し、外部の

設定ファイル
設定ファイルでさまざまなサーバーパラメータを設定する方法を学びます。
(通常はresourceディレクトリにあるapplication.confまたはapplication.yaml)から
アプリケーションモジュール
モジュールを使用すると、ルートをグループ化してアプリケーションを構造化できます。
を読み込みます。

どのモジュールを読み込むかの指定に加えて、設定ファイルにはポート、ホスト、SSL設定などのさまざまなサーバーパラメータを含めることができます。例えば、以下の設定ではサーバーポートを8080に設定しています。

kotlin
yaml

NOTE

EngineMain.main()でサーバーを即座に起動する代わりに、EngineMain.createServer()を使用して手動でサーバーインスタンスを作成することもできます。詳細については、を参照してください。

完全な例については、 engine-main および engine-main-yaml を参照してください。

サーブレット

Ktorアプリケーションは、TomcatやJettyを含むサーブレットコンテナ内で実行およびデプロイできます。 サーブレットコンテナ内にデプロイするには、

WAR
WARアーカイブを使用してサーブレットコンテナ内でKtorアプリケーションを実行およびデプロイする方法を学びます。
アーカイブを生成し、それをサーバーまたはWARをサポートするクラウドサービスにデプロイする必要があります。