Skip to content

创建服务器

创建服务器

在创建 Ktor 应用之前,您需要考虑应用将如何

  • 作为自包含包

    在此情况下,用于处理网络请求的应用

    引擎
    了解处理网络请求的引擎。
    应该是应用的一部分。您的应用可以控制引擎设置、连接和 SSL 选项。

  • 作为 servlet

    在此情况下,Ktor 应用可以部署在 servlet 容器(如 Tomcat 或 Jetty)中,容器负责控制应用的生命周期和连接设置。

自包含包

要将 Ktor 服务器应用作为自包含包交付,您首先需要创建一个服务器。服务器配置可以包含不同的设置:服务器

引擎
了解处理网络请求的引擎。
(如 Netty、Jetty 等)、各种特定于引擎的选项、主机和端口值等。在 Ktor 中,创建和运行服务器有两种主要方法:

  • embeddedServer函数是在代码中配置服务器参数并快速运行应用的简单方法。

  • EngineMain提供了更灵活的服务器配置方式。您可以在文件中指定服务器参数,并在无需重新编译应用的情况下更改配置。此外,您可以从命令行运行应用,并通过传递相应的命令行实参来覆盖所需的服务器参数。

在代码中配置

embeddedServer函数是在

代码
了解如何在代码中配置各种服务器参数。
中配置服务器参数并快速运行应用的简单方法。在下面的代码片段中,它接受引擎和端口作为形参来启动服务器。在以下示例中,我们使用Netty引擎运行服务器并侦听8080端口:

kotlin

有关完整示例,请参阅embedded-server

在文件中配置

EngineMain启动带有选定引擎的服务器,并从外部

配置文件
了解如何在配置文件中配置各种服务器参数。
(通常是位于resource目录中的application.confapplication.yaml)中加载
应用模块
模块允许您通过对路由进行分组来构建应用结构。

除了指定要加载的模块外,配置文件还可以包含各种服务器参数,例如端口、主机和 SSL 设置。例如,下面的配置将服务器端口设置为8080

kotlin
yaml

NOTE

除了直接使用EngineMain.main()启动服务器外,您还可以使用EngineMain.createServer()手动创建服务器实例。要了解更多信息,请参阅

有关完整示例,请参阅engine-mainengine-main-yaml

Servlet

Ktor 应用可以在包含 Tomcat 和 Jetty 在内的 servlet 容器中运行和部署。要部署在 servlet 容器中,您需要生成

WAR
了解如何使用 WAR 归档文件在 servlet 容器中运行和部署 Ktor 应用。
归档文件,然后将其部署到支持 WAR 的服务器或云服务中。