簡體   English   中英

有沒有人成功使用Amazon OpsWorks部署節點(快速)應用程序?

[英]Has anyone been successful deploying a node (express) app with Amazon OpsWorks?

正如標題所示,我一直在使用Amazons新的OpsWorks管理系統來部署應用程序,但是我無法弄清楚如何讓節點服務器開始在實例上運行。 從端口應用程序層也可以訪問我假設我需要在端口80上偵聽,但我覺得問題是沒有正確的文件被啟動。

與Heroku上的Procfile類似,是否需要包含一個特殊的啟動腳本類型文件,以便OpsWorks正確啟動它?

請注意,我還沒有使用Chef的經驗,因此我希望能夠使用默認選項,即不編寫自定義Chef配方來完成它。

我花在這上面的時間是令人尷尬的,但無論如何我都會分享,希望能挽救其他人的生命時間,否則亞馬遜會偷走他們的生命。

  • 要回答你的問題,是的,我確實讓我的節點/快速應用程序運行。
  • 如果您使用任何類型的process.env選擇端口號的方法,請將您的偵聽端口更改為80(如果適用,則更改為443)。
  • 最重要的是,亞馬遜並不關心您的main文件是什么。 將其重命名為server.js並將其放在應用程序的根目錄中。 這是monit嘗試運行的文件。

希望這會有所幫助。 如果沒有,或者所有這一切都是顯而易見的,我為我的愚蠢和責備缺乏睡眠道歉。 :)

ZachRabbit的答案很棒。 我想補充一點,OpsWorks現在支持為部署的應用程序進程設置環境變量(即process.env.PORT)。

添加應用程序(或編輯)時,如果您在server.js中使用以下內容,則可以繼續使用PORT鍵和值80設置環境變量:

!/usr/bin/env node
var debug = require('debug')('my-app');
var app = require('app');

app.set('port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
});

有關環境變量設置的更多信息,請訪問:

http://docs.aws.amazon.com/opsworks/latest/userguide/apps-environment-vars.html

確保文件名是server.js並將環境變量PORT設置為80對我來說就像一個冠軍。

只需復制AWS OpsWorks頁面即可配置node.js應用程序:

“默認情況下,我們希望您的Node.js應用程序在端口80上偵聽。此外,我們傳遞給節點的文件必須命名為”server.js“,並且應該位於應用程序的根目錄中。”

問候。

我也在玩這個游戲,希望我的成功之路能夠幫助別人。 Node.js通常需要提升權限才能在端口80上運行,所以我發現雖然命名示例應用程序app.js很好,但您需要修改默認OpsWorks Node.js部署Chef recipe的第2行以使用sudo:

有點偏離主題可能,但我花了幾個小時就這個,所以我認為值得分享:

OpsWorks上設置Hapi.js服務器時,我必須確保我沒有使用主機名localhost ,而是將其設置為0.0.0.0 否則它只是默默地失敗了。

希望能幫助任何人。

暫無
暫無

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

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