跳轉到內容

專案

專案模組用於管理後端應用程式,支援 Go、Java、Node.js、PHP、Python 等多種語言。 專案會作為系統服務運行,支援自動重啟、開機自啟等功能。

專案類型

類型說明適用場景
GoGo 語言專案Gin、Echo、Fiber 等框架
JavaJava 專案Spring Boot、Tomcat 等
Node.jsNode.js 專案Express、Koa、NestJS 等
PHPPHP 專案Laravel Octane、Swoole 等
PythonPython 專案Django、Flask、FastAPI 等
通用其他類型專案任意可執行程式

專案列表

專案 vs 網站

特性專案網站
運行方式獨立進程依賴 Web 伺服器
進程管理專案自動重啟由 Web 伺服器管理
適用場景後端服務、API傳統 Web 應用
對外存取反向代理配置直接存取

建立專案

  1. 進入 專案 頁面
  2. 點擊 建立專案

建立專案

配置項

  • 專案名:專案標識,用作服務名稱
  • 專案目錄:專案檔案所在目錄
  • 運行使用者:運行專案的系統使用者,預設 www
  • 啟動命令:啟動專案的命令
  • 建立專案時開啟「反向代理」,會自動建立一個反向代理網站。

專案管理

專案列表顯示以下資訊:

  • 名稱:專案名稱
  • 描述:專案描述
  • 類型:專案類型(Go/Java/Node.js 等)
  • 狀態:運行狀態
  • 自啟動:是否開機自啟
  • 目錄:專案目錄
  • 操作:啟動、停止、重啟、日誌等

專案操作

  • 啟動:啟動專案
  • 停止:停止專案
  • 重啟:重啟專案
  • 檢視專案日誌
  • 編輯:修改專案配置
  • 刪除:刪除專案

編輯專案

點擊專案列表中的 編輯 按鈕,可以修改專案配置。 編輯對話框包含多個標籤頁:

基本設置

配置專案的基本資訊:

基本設置

  • 專案名:專案標識,用作服務名稱
  • 描述:專案描述資訊
  • 專案目錄:專案檔案所在目錄
  • 工作目錄:程式運行時的工作目錄,預設為專案目錄
  • 運行使用者:運行專案的系統使用者

運行設置

配置專案的運行參數:

運行設置

  • 啟動命令:啟動專案的命令
  • 預啟動命令
  • 啟動後命令:啟動後運行的命令(可選)
  • 停止命令:自定義停止命令(可選)
  • 重載命令:自定義重載命令(可選)
  • 重啟策略:失敗時重啟 / 總是重啟 / 不重啟
  • 重啟間隔:兩次重啟之間的等待時間
  • 最大重啟次數:防止無限重啟
  • 在專案啟動前執行,如安裝依賴:
  • lsof -i:3000 # 檢視佔用連接埠的進程
  • 標準輸出:標準輸出的處理方式
  • 標準錯誤:標準錯誤的處理方式
  • 環境變數:設置專案運行時的環境變數

依賴

配置服務依賴關係以控制啟動順序:

依賴

  • Requires:強依賴,如果這些服務不可用,專案將會失敗
  • Wants:弱依賴,如果這些服務失敗,專案仍然會啟動
  • After:在指定服務之後啟動此專案
  • Before:在指定服務之前啟動此專案

常見服務:network.targetmysqld.servicepostgresql.serviceredis.service

資源限制

設置資源限制以防止服務消耗過多系統資源:

資源限制

  • 記憶體限制:限制專案使用的最大記憶體,0 表示無限制
  • CPU 配額:限制 CPU 使用率,100% = 1 個 CPU 核心

安全設置

增強服務隔離的安全選項:

安全設置

  • 沒有新權限:防止進程獲取新的權限
  • 保護 /tmp:為服務建立私有的 /tmp 目錄
  • 保護 /home:限制對 /home 目錄的存取
  • 保護系統:設置系統目錄的唯讀保護級別
    • true:/usr、/boot 為唯讀
    • full:+ /etc 為唯讀
    • strict:整個檔案系統為唯讀
  • 讀寫路徑:服務可以讀寫的路徑
  • 唯讀路徑:服務只能讀取的路徑

注意

安全設置可能會影響某些功能, 請在啟用之前進行充分測試。

進程管理

專案使用 systemd 進行進程管理,具有以下特性:

  • 專案啟動失敗
  • 開機自啟:系統啟動時自動啟動專案
  • 日誌管理:自動記錄標準輸出和錯誤輸出

下一步