作为一名开发人员,我主要使用PHP作为后端(在Apache上运行)并在前端使用HTML,CSS和JavaScript。现在我开始尝试使用Node.js,Express.js和Angular.js。
所以我很好奇你将如何在生产环境中设置Node和Express。我知道Node不是Web服务器,虽然它可以提供文件,但是这个堆栈的典型生产环境是什么样的?
非常感谢。
弗洛伊德
答案 0 :(得分:1)
你的问题很广泛。我将以数字海洋为例向您介绍我如何设置所有内容。
<强>部署强>
重要的是,nginx将成为您的反向代理。完成此操作后,请记住:
你还需要单独安装mongodb,rethinkdb等。如果您愿意,也可以使用像mongolab这样的数据库服务提供商。
<强>缩放强>
对于大多数网站来说,上面提到的设置都不错,但如果你遇到速度瓶颈或者你的应用程序崩溃了,你可能想要使用:
app.use(express.static());
应该在404处理程序之前。备注:强> 其他人指出你可以在没有nginx的情况下自己使用nodejs。但是大多数人建议在生产环境中使用nginx。有些像appfog这样的提供者默认使用nginx。
答案 1 :(得分:-1)
您命名的所有软件包都可通过Node Package Manager(NPM)获得。 NPM通常带有节点,对于所有Node.js项目来说都非常重要。您可以安装
等应用npm install express
哪些安装表达及其所有依赖项。如果您希望能够在任何计算机上复制您的环境,请运行
npm init
并在所有安装命令中添加--save标志。这将它添加到一个名为package.json的文件中,下次要从头开始安装所有内容时,可以包含package.json,然后运行
npm install
在目录中。
答案 2 :(得分:-2)
在提出这个问题而没有得到一个完美的例子之后,我想用更多面向硬件的方式解释这个问题(这就是生产的工作方式。在真实的服务器上)。 假设您在数字海洋中安装了一个5美元的液滴,其上安装了ubuntu,没有别的。
您购买域名(www.example.com)。你从任何公司购买服务器。他们给你一个IP地址(让我们说12.133.222.59)。现在你必须在端口8000上运行你的节点应用程序。你可以通过键入node app.js来运行它,然后转到浏览器并运行localhost:8000。您的应用现在正在运行优秀。现在您需要做的是将您的应用程序放在服务器上并运行它以便它将在12.133.222.59:8000上运行,但这不是您想要的。你想要它像www.example.com,它应该打开localhost:8000页面,你是对的吗? 如是。您需要将www.example.com与12.133.222.59:8000相关联。 你如何做到这一点。嗯,有很多方法。我喜欢简单的一个。根据我的说法是使用Nginx。它将在特定地址为您的Web应用程序提供服务。 现在,如何使用Nginx来做到这一点超出了问题的范围。但如果你想让我继续我会。