2014-03-05 171 views
2

我在閱讀有關Deploying to EC2。最後的步驟是這樣的,在這裏我把我的流星項目流星:部署到Amazon EC2

PORT=80 MONGO_URL=mongodb://localhost:27017/sidebar 
ROOT_URL=http://ec2-23-20-113-59.compute-1.amazonaws.com/ 
sudo node ../bundle/main.js 

,我在我的AWS控制檯中顯示的公共DNS更換ROOT_URL外捆文件夾。我不太確定使用什麼MONGO_URL,所以我通過命令啓動流星

meteor 

,看看有什麼MongoDB的地址流星用途,這原來是

mongodb://127.0.0.1:3002/meteor 

但對於節點應用程序能夠連接到mongodb,我必須保持流星應用程序運行。當它似乎工作,與控制檯顯示

listening 

我嘗試使用公共DNS訪問該網站,但它不起作用。所以我不知道下一步該怎麼做。

+0

或者,你可能想嘗試在生產中按預期運行(通過流星束)不同的方法:https://github.com/matb33/meteor-ec2-install – matb33

+0

在usi那個腳本,MONGO_URL仍然是mongodb://127.0.0.1:3002/meteor? – user2191332

+0

差不多。端口27017而不是3002. – matb33

回答

5

您需要啓動您自己的mongodb實例。使用meteor命令運行項目時看到的只是流星爲開發提供的就地mongo db。在生產中,您只需啓動您自己的mongodb(通過您的linux軟件包管理器安裝它),然後將您的MONGO_URL設置爲 - 您可以使用本地IP。

在AWS上的Ubuntu上,例如,如果您使用apt-get install mongodb安裝了mongodb,它將在此URL上運行:MONGO_URL='mongodb://localhost:27017/yourdbname'。如果您使用單獨的AWS實例運行db,那麼您只需將該實例的IP替換爲localhost即可。

順便說一句:你應該避免以root身份運行任何東西,包括。你的捆綁應用程序。我假設你只是爲了能夠綁定到端口80而這樣做。一種可能更安全的方式是允許用戶在調用節點之前使用以下命令綁定到該端口:

sudo setcap 'cap_net_bind_service=+ep' /usr/bin/nodejs 

更新: 設置這些環境變量的最簡單的方法是隻用env

sudo env PORT=80 MONGO_URL=mongodb://localhost:27017/sidebar ROOT_URL=http://ec2-23-20-113-59.compute-1.amazonaws.com/ node ../bundle/main.js 
+0

我首先運行sudo mongod --smallfiles,然後用MONGO_URL = mongodb:// localhost:27017/meteor啓動節點應用程序,但仍然得到錯誤:必須在環境中設置MONGO_URL – user2191332

+0

這部分很簡單。查看更新。 –

+0

謝謝。現在沒有錯誤(只是空白);但是我的瀏覽器說我訪問ROOT_URL時無法連接到該地址。我想不出什麼是缺失的。 – user2191332