建立伺服器
建立伺服器
程式碼範例: embedded-server、 engine-main、 engine-main-yaml
在建立 Ktor 應用程式之前,您需要考慮應用程式將如何
:作為一個 獨立的軟件包
在這種情況下,用於處理網路請求的應用程式
引擎應作為應用程式的一部分。 您的應用程式可以控制引擎設定、連線和 SSL 選項。Learn about engines that process network requests.作為一個 servlet
在這種情況下,Ktor 應用程式可以部署在 servlet 容器(例如 Tomcat 或 Jetty)中, 由容器控制應用程式的生命週期和連線設定。
獨立的軟件包
若要將 Ktor 伺服器應用程式作為獨立的軟件包交付,您需要先建立一個伺服器。 伺服器配置可以包含不同的設定: 伺服器
引擎
(例如 Netty、Jetty 等)、 各種引擎特定的選項、主機與連接埠值等等。 在 Ktor 中有兩種建立和執行伺服器的主要方法: Learn about engines that process network requests.
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 使用選定的引擎啟動伺服器,並從外部
配置文件
(application.conf 或 application.yaml,通常位於 resource 目錄中)載入Learn how to configure various server parameters in a configuration file.
應用程式模組
。 Modules allow you to structure your application by grouping routes.
除了指定要載入的模組外,配置文件還可以包含各種伺服器參數,例如連接埠、主機和 SSL 設定。例如,下方的配置將伺服器連接埠設定為 8080。
kotlin
yaml
有關完整範例,請參閱 engine-main 和 engine-main-yaml 。
Servlet
Ktor 應用程式可以在包含 Tomcat 和 Jetty 的 servlet 容器中執行和部署。 若要部署在 servlet 容器中,您需要產生一個
WAR
封存檔,然後將其部署到支援 WAR 的伺服器或雲端服務。 Learn how to run and deploy a Ktor application inside a servlet container using a WAR archive.
