簡體   English   中英

如何使用 EC2 (linux) 服務器啟動運行 nginx 和 Node.js

[英]How to run nginx and Node.js with EC2 (linux) server startup

如何在服務器啟動時運行 nginx 和 Node.js?

為了使用 AWS Auto Scaling 啟動 Amazon EC2,我必須直接連接到 EC2 以運行 nginx 和 Node.js。

這可以用於 Auto Scaling 嗎?


在 Amazon EC2 中,我想在 EC2 啟動期間通過 Auto Scaling 使用 Node.js 運行 nginx。

EC2 設置為使用圖像的 Auto Scaling 組。 我想運行由 Auto Scaling 啟動的 EC2 Node.js 應用程序和 nginx,以及 EC2 服務器啟動。

對於 nginx,我可以使用chkconfig運行可執行文件,但 Node.js 應用程序將使用 package.json 中編寫的代碼作為 pm2 運行。

如何在 EC2 啟動時運行 nginx 和 Node.js,並讓新的 EC2(從 Auto Scaling 啟動)正確響應?


評論回復:

我不想使用“node app.js”命令運行 node.js。

我想通過 package.json ( script ) 運行 node.js

前任。

  "start": "NODE_ENV=production PORT=3000 pm2 start server.js -i -1"

我怎樣才能做到這一點?

您的建議是使用 linux 服務器初始化腳本文件。

但是,我想設置 NODE_ENV、PORT 並使用 pm2 命令。


解決方案

我解決了這個問題。

Linux 啟動時,我嘗試使用腳本文件自動運行 node.js。

我創建了腳本文件,並在 linux 啟動后自動運行了 shell 腳本,但這似乎不是一個好主意。

或者,可以使用 pm2 startup 和生態系統.config.js 靈活解決問題。

感謝你的回復。

這與自動縮放無關。 它通常與自動擴展程序用來啟動您的 EC2 實例的 EC2 AMI(亞馬遜機器映像)有關,也可能與您在啟動時傳遞給實例的“用戶元數據”有關。 只有這兩件事會影響 EC2 實例在啟動時和啟動后的行為,直到它開始與外界通信。

因此,您需要做的是創建一個已設置的 AMI,以便在從該 AMI 啟動 EC2 實例時啟動正確的操作。 您要做的是將要使用的 AMI 作為起點,將該 AMI 啟動到一個實例中,進行所需的必要更改和安裝,然后保存一個新的 AMI。 然后更改您的自動縮放組以使用該新 AMI 啟動新實例。

您也可以在“用戶元數據”中發送一個腳本來啟動事物,但這很少是您想要做的事情”。大多數情況下,您希望您的 AMI 做正確的事情。

您也可能使用某種啟動后配置程序,例如 Chef、Ansible 或 Chef Habitat。 如果你是,那就是你設置所有這些東西的地方。 您希望該系統完成您所描述的工作。 但如果你這樣做,我之前說的仍然適用。 為此,您通常還構建了一個自定義 AMI,其中已經內置了供應系統的一部分,以便該系統可以連接到它並供應它。 這些系統也可以從通用 AMI 開始。 這取決於系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM