Skip to content

建立伺服器

在建立 Ktor 應用程式之前,您需要考量您的應用程式將如何

部署
Code example: %example_name%

  • 作為 獨立套件

    在此情況下,用於處理網路請求的應用程式

    引擎
    Learn about engines that process network requests.
    應該是您應用程式的一部分。 您的應用程式可控制引擎設定、連線和 SSL 選項。

  • 作為 Servlet

    在此情況下,Ktor 應用程式可以部署在 Servlet 容器中(例如 Tomcat 或 Jetty), 該容器控制應用程式生命週期和連線設定。

獨立套件

若要將 Ktor 伺服器應用程式作為獨立套件交付,您需要先建立一個伺服器。 伺服器配置可包含不同的設定:一個伺服器

引擎
Learn about engines that process network requests.
(例如 Netty、Jetty 等)、 各種引擎特定選項、主機和埠值等。 Ktor 中有兩種主要方法用於建立和執行伺服器:

  • embeddedServer 函數是一種簡單的方式,可以在 程式碼中配置伺服器參數 並快速執行應用程式。

  • EngineMain 為配置伺服器提供了更大的靈活性。您可以 在檔案中指定伺服器參數 ,並在不重新編譯應用程式的情況下更改配置。此外,您可以從命令列執行應用程式,並透過傳遞相應的命令列引數來覆寫所需的伺服器參數。

在程式碼中配置

embeddedServer 函數是一種簡單的方式,可以在

程式碼
Learn how to configure various server parameters in code.
中配置伺服器參數並快速執行應用程式。在下面的程式碼片段中,它接受一個
引擎
Learn about engines that process network requests.
和埠作為參數來啟動伺服器。在下面的範例中,我們使用 Netty 引擎運行伺服器並監聽 8080 埠:

kotlin

有關完整範例,請參閱 embedded-server

在檔案中配置

EngineMain 使用選定的引擎啟動伺服器,並載入外部

配置檔案
Learn how to configure various server parameters in a configuration file.
中指定的應用程式
模組
Modules allow you to structure your application by grouping routes.
, 該檔案位於 resources 目錄中: application.confapplication.yaml 。 除了要載入的模組之外,配置檔案還可以包含各種伺服器參數(例如下面範例中的 8080 埠)。

kotlin
yaml

有關完整範例,請參閱 engine-main engine-main-yaml

Servlet

Ktor 應用程式可以在包含 Tomcat 和 Jetty 的 Servlet 容器中運行和部署。 若要部署到 Servlet 容器中,您需要產生一個

WAR
Learn how to run and deploy a Ktor application inside a servlet container using a WAR archive.
歸檔檔,然後將其部署到支援 WAR 檔的伺服器或雲服務上。