在Linux上部署Nodejs的web项目

Posted 二木成林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Linux上部署Nodejs的web项目相关的知识,希望对你有一定的参考价值。

这里用的例子是一个用http模块写的简单web项目,要求部署到云服务器上,让外界浏览器可以访问。项目基本目录结构如下:

第一步,将项目压缩打包成tar.gz格式,包括项目下的node_modules文件夹。
第二步,将这个.tar.gz压缩文件通过文件传输工具上传到云服务器上任意目录下。

然后使用tar -xvf feedback.tar.gz命令对该压缩包进行解压。

第三步,启动项目

跳转当前项目下,执行node app.js命令启动项目。其中app.js文件就是项目的核心启动文件。注意,执行node命令的前提是已经安装了node.js并且配置了全局软链接,可以通过node -v命令来查看node命令是否可以使用。如果没有安装Node.js请参考:在Linux上安装Node.js

其实启动项目同在Windows系统下启动一样,都是使用node命令执行js文件。成功启动项目后,就可以通过http://IP地址:端口号进行访问了,其中IP地址就是该服务器的外网IP(该项目是部署在腾讯云服务器上的,这里的IP改成自己服务器IP即可),而端口号就是在程序代码中设定的端口号,这里设定的端口号是8888

但事实上在浏览器输入http://IP地址:端口号访问,没有结果。

原因是该项目需要通过8888端口访问,而腾讯云服务器是没有开放端口的,所以项目是访问不了的,或者可以直接关闭服务器的防火墙,但不建议。这里演示下如何在腾讯云服务器上开放端口。其他云服务器的端口开放也大同小异。
可以看到服务器是默认开放了一些端口的,但没有8888端口,需要我们手动开放。

点击"添加规则"按钮,添加开放端口规则。
就可以看到添加成功的规则
再度访问就能成功了

注:

  • 这里使用的服务器是腾讯云服务器,安装的是CentOS7系统。使用自己购买的服务器即可。
  • 这里使用的项目只是一个简单的web项目,使用原生http模块写的,代码很简单。而其他node.js项目也可以这样部署,以此为例。

以上是关于在Linux上部署Nodejs的web项目的主要内容,如果未能解决你的问题,请参考以下文章

部署nodejs项目到服务器的一些总结

Eclipse中怎么把项目部署到Tomcat中去?

一个目录下多个nodejs项目

阿里云部署node接口

哪个是基于NodeJS的Azure Web App(Linux)上运行的默认Web服务器?

如何使用 ReactJS/NodeJS 一起部署到 Amazon Web Services (AWS)?