在服务器中部署node项目
这段时间写了个express项目,在本地使用terminal启动没有任何问题
现在想把它放在linux服务器中进行部署,不是很清楚,
首先知道需要下载nodejs,安装express,由于没有使用数据库,所以不用安装
项目使用远程工具导入,但是接下来就不会弄了,怎么启动,
怎么通过分配的ip地址,在其他电脑上面可以访问
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设你有一个主机,VPS、云主机什么的,那么大题步骤如下:
ssh登录这个主机,安装node。官网有编译好的linux版本,下载下来,配置好路径就可以了。
然后把你的代码传到这个主机上,用git也行,用ftp也行。
进入工程目录,运行
npm install
,确保所有依赖的包都安装好了。安装部署工具
npm i -g pm2
,时情况而定,是否需要sudu
。在工程目录,运行
sudo pm2 start bin/www
(可选)配置防火墙,如果是centos,命令类似于
firewall-cmd --add-port 3000/tcp
。主机一般有两个IP,一个外网IP,一个内网IP,你直接访问外网IP+端口号就能访问你的网站了。例如外网IP为
11.22.33.44
项目监听的端口为3000
则浏览器输入11.22.33.44:3000
就行了。有几个值得注意的
一般是创建一个软连接到
node
,将这个软连接放到path
环境变量下。这样node升级的时候,不用修改路径了,直接修改这个符号连接就行了推荐用git。写个脚本就能自动拉取代码,进行部署。
根据网络情况,将npm的源更换为淘宝的源
pm2只是一个工具,可以守护你的应用。如果应用挂了,会0时延重启。还有很多其他的工具,看你喜欢哪个。
某些云服务在你开启80端口的时候会进行检查,如果没有备案,你是无法通过80端口访问的。会显示提示备案的网页。如果仅仅向运行起来,就换个别的端口就行。
如果你用的是云,内外网端口号一般在主机信息就能查看,是在不行ifconfig也能看。
根据情况,设置NODE_ENV。如果你用的是pm2,可以写个启动脚本,在里面设置是否部署为生产。
题外
高级一旦的可以用docker。不过感觉现在没必要。
最好安装个nginx做代理。
ssh这一类的服务要进行安全配置。禁用账号密码,只使用证书登录。