我已在AWS EC2上成功安装并运行NodeJS。我使用脚本自动启动它。它也工作正常。
现在我想安装同一个应用程序的另一个实例 - 在单独的文件夹下并侦听不同的端口。
第二次安装后,我有两个独立的节点项目:
- /var/nodes/fc-dev
- dev节点和
- /var/nodes/fc-prod
- 生产节点
我还为生产模块创建了单独的脚本 - /etc/init/fc-prod.conf
这是/etc/init/fc-dev.conf
脚本:
#将日志保存到/var/log/upstart/fc-dev.log
控制台日志
# Starts only after drives are mounted.
start on started mountall
stop on shutdown
# Automatically Respawn. But fail permanently if it respawns 10 times in 5 seconds:
respawn
respawn limit 10 5
script
exec sudo NODE_ENV=development /usr/bin/node --debug /var/nodes/fc-dev/fc-server.js
end script
这是/etc/init/fc-prod.conf
文件:
# Saves log to /var/log/upstart/fc-dev.log
console log
# Starts only after drives are mounted.
start on started mountall
stop on shutdown
# Automatically Respawn. But fail permanently if it respawns 10 times in 5 seconds:
respawn
respawn limit 10 5
script
exec sudo NODE_ENV=production /usr/bin/node /var/nodes/fc-prod/fc-server.js
end script
我按sudo start fc-dev
成功启动了dev项目,但是当我输入sudo start fc-prod
时,我遇到了以下错误:
module.js:340
throw err;
^
'rror: Cannot find module '/var/nodes/fc-prod/fc-server.js
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
另一方面,键入sudo NODE_ENV=production /usr/bin/node /var/nodes/fc-prod/fc-server.js
可以让我启动生产节点。
我做错了什么?
答案 0 :(得分:0)
经过额外尝试并失败后,我解决了以下问题:
sudo cp fc-dev.conf fc-prod.cp
sudo nano fc-prod.conf
- 编辑删除调试相关参数并将目标文件夹更改为生产文件的文件。我还比较了生产配置文件的两个文件版本,我得到的唯一区别是一些特殊字符 - LFCR
和LF
希望这有助于将来的某些人。