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

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_服务器


第一步,将项目压缩打包成tar.gz格式,包括项目下的node_modules文件夹。

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_node.js_02

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_linux_03

第二步,将这个.tar.gz压缩文件通过文件传输工具上传到云服务器上任意目录下。

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_node.js_04

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_云服务_05


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

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_服务器_06

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_云服务_07


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

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_IP_08


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

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_IP_09


纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_node.js_10

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

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_node.js_11


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

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_node.js_12

可以看到服务器是默认开放了一些端口的,但没有8888端口,需要我们手动开放。点击"添加规则"按钮,添加开放端口规则。

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_服务器_13

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_linux_14

就可以看到添加成功的规则

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_node.js_15

再度访问就能成功了

纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_服务器_16


纯nodejs工程需要打包放到nginx上吗 nodejs打包部署web项目_服务器_17

注:

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