搜尋
首頁web前端前端問答如何將nodejs部署在伺服器自動開啟

在目前雲端運算和網路應用程式開發時代,伺服器的自動部署已經成為了一個不可避免的問題。而Node.js作為一種高效率且快速的伺服器端框架,它的部署方式更是應用廣泛。本文將為您介紹如何將Node.js部署在伺服器上並實現自動開啟。

一、伺服器環境準備

首先,我們需要一個已經安裝好Node.js的伺服器環境,這裡我們以Ubuntu系統伺服器為例。如果你的伺服器上還沒有安裝Node.js,請透過以下指令進行安裝:(本文以Node.js版本為10為例)

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm

安裝完成後,可透過以下指令查看Node.js版本:

node -v

二、專案準備

在將Node.js部署到伺服器上之前,我們需要將我們的專案準備好。首先,我們需要將專案文件從本地拷貝到伺服器上。這裡我們使用scp指令將本地專案文件拷貝到伺服器上。假設我們的專案檔案在本地位於/home/user/project/目錄下,我們要將其拷貝到伺服器的/usr/local目錄下。在本地端執行以下命令:

scp -r /home/user/project/ username@server:/usr/local/

其中,-r表示遞歸拷貝所有文件,username為伺服器的用戶名,server為伺服器IP位址或主機名稱。

三、安裝pm2

在專案準備好之後,我們需要安裝一個管理Node.js進程的工具-pm2。 pm2具有自動重新啟動進程、監控運行情況、多進程管理等功能,如果您的專案有多個進程需要管理,那麼使用pm2會讓管理更為簡單且清晰。在伺服器上執行以下命令進行pm2安裝:

npm install -g pm2

四、設定pm2自動開啟

pm2已經安裝完成後,我們需要在伺服器上建立pm2的ecosystem.config.js文件(可在專案根目錄下建立),內容如下:

module.exports = {
  apps : [{
    name        : 'app_name', //应用名称
    script      : 'app.js', //应用入口文件
    log_date_format: 'YYYY-MM-DD HH:mm:ss',
    error_file : '/var/log/app_name/err.log', //错误日志路径
    out_file   : '/var/log/app_name/out.log', //输出日志路径
    pid_file   : '/var/run/app_name.pid', //pid文件路径
    instances  : 2, //进程数
    autorestart: true, //自动重启
    watch      : true, //监听文件变化,自动重启
    max_memory_restart: '1G', //最大内存限制达到指定值后,自动重启
    env: {
      NODE_ENV: 'production' //环境变量
    },
  }],
};

其中,需要根據實際情況,修改應用程式名稱、套用入口檔案等資訊。注意:錯誤日誌路徑、輸出日誌路徑、pid檔案路徑需要確保伺服器上建立了相關目錄。

除此之外,我們還需要透過以下指令建立pm2的啟動腳本:

sudo pm2 startup systemd

上述指令會執行一個自動儲存並引導pm2進程的腳本,產生的設定檔為/ etc/systemd/system/pm2.service。執行完以上指令後,終端機會輸出一段文字,複製這段文字並在終端機執行,即可完成自動開機啟動pm2的設定。

五、啟動應用程式

在上述步驟都準備完畢後,我們可以使用下列指令啟動應用程式:

cd /usr/local/project_folder
pm2 start ecosystem.config.js

其中,project_folder為專案資料夾,ecosystem.config .js為剛剛建立的pm2設定檔。執行以上命令後,終端會輸出應用程式運行訊息,透過以下命令可查看應用程式資訊:

pm2 list

也可透過以下命令重啟或停止應用程式:

pm2 restart app_name
pm2 stop app_name

最後,在以上所有配置都完成後,將會在伺服器重新啟動後自動啟動Node.js應用,並透過pm2監控應用程式的運作。

本文介紹如何將Node.js部署在伺服器上並實現自動開啟。透過使用pm2管理Node.js進程,可大幅簡化伺服器管理流程,提升應用程式的可靠性和穩定性。

以上是如何將nodejs部署在伺服器自動開啟的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
反應的局限性是什麼?反應的局限性是什麼?May 02, 2025 am 12:26 AM

Include:1)AsteeplearningCurvedUetoItsVasteCosystem,2)SeochallengesWithClient-SiderEndering,3)潛在的PersperformanceissuesInsuesInlArgeApplications,4)ComplexStateStateManagementAsappsgrow和5)TheneedtokeEedtokeEedtokeEppwithitsrapideDrapidevoltolution.thereedtokeEppectortorservolution.thereedthersrapidevolution.ththesefactorsshesssheou

React的學習曲線:新開發人員的挑戰React的學習曲線:新開發人員的挑戰May 02, 2025 am 12:24 AM

reactischallengingforbeginnersduetoitssteplearningcurveandparadigmshifttocoment oparchitecent.1)startwithofficialdocumentationforasolidFoundation.2)了解jsxandhowtoembedjavascriptwithinit.3)

為React中的動態列表生成穩定且獨特的鍵為React中的動態列表生成穩定且獨特的鍵May 02, 2025 am 12:22 AM

ThecorechallengeingeneratingstableanduniquekeysfordynamiclistsinReactisensuringconsistentidentifiersacrossre-rendersforefficientDOMupdates.1)Usenaturalkeyswhenpossible,astheyarereliableifuniqueandstable.2)Generatesynthetickeysbasedonmultipleattribute

JavaScript疲勞:與React及其工具保持最新JavaScript疲勞:與React及其工具保持最新May 02, 2025 am 12:19 AM

javascriptfatigueinrectismanagbaiblewithstrategiesLike just just in-timelearninganning and CuratedInformationsources.1)學習whatyouneedwhenyouneedit

使用USESTATE()掛鉤的測試組件使用USESTATE()掛鉤的測試組件May 02, 2025 am 12:13 AM

tateractComponents通過theusestatehook,使用jestandReaCtTestingLibraryToSigulationsimintionsandIntractions and verifyStateChangesInTheUI.1)underthecomponentAndComponentAndComponentAndConconentAndCheckInitialState.2)模擬useruseruserusertactionslikeclicksorformsorformsormissions.3)

React中的鑰匙:深入研究性能優化技術React中的鑰匙:深入研究性能優化技術May 01, 2025 am 12:25 AM

KeysinreactarecrucialforopTimizingPerformanceByingIneFefitedListupDates.1)useKeyStoIndentifyAndTrackListelements.2)避免使用ArrayIndi​​cesasKeystopreventperformansissues.3)ChooSestableIdentifierslikeIdentifierSlikeItem.idtomaintainAinainCommaintOnconMaintOmentStateAteanDimpperperFermerfermperfermerformperfermerformfermerformfermerformfermerment.ChosestopReventPerformissues.3)

反應中的鍵是什麼?反應中的鍵是什麼?May 01, 2025 am 12:25 AM

ReactKeySareUniqueIdentifiers usedwhenrenderingListstoimprovereConciliation效率。 1)heelPreactrackChangesInListItems,2)使用StableanDuniqueIdentifiersLikeItifiersLikeItemidSisRecumended,3)避免使用ArrayIndi​​cesaskeyindicesaskeystopreventopReventOpReventSissUseSuseSuseWithReRefers和4)

反應中獨特鍵的重要性:避免常見的陷阱反應中獨特鍵的重要性:避免常見的陷阱May 01, 2025 am 12:19 AM

獨特的keysarecrucialinreactforoptimizingRendering和MaintainingComponentStateTegrity.1)useanaturalAlaluniqueIdentifierFromyourDataiFabable.2)ifnonaturalalientedifierexistsistsists,generateauniqueKeyniqueKeyKeyLiquekeyperaliqeyAliqueLiqueAlighatiSaliqueLiberaryLlikikeuuId.3)deversearrayIndi​​ceSaskeyseSecialIndiceSeasseAsialIndiceAseAsialIndiceAsiall

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用