阿里云购买的免费的集成环境,环境内部分配置如下: php7.2,centos6.10,mysql,node,git
现在需要将之前写好的接口服务部署到远程服务器,一下记录部署过程
本文由XUAO提供,点击可查看原文
nginx centos6.10 环境部署nodejs
可以先配置nginx的配置项,在xshell工具中登录进centos后台后输入命令:
cd /usr/local/nginx/conf/vhost
使用命令新建一个文件,文件名任意,后缀为 .conf
vim blog.conf
并输入内容
server {
listen 80;
server_name api.xuxiao.wang;
location / {
proxy_pass http://127.0.0.1:8888/;
}
}
这个配置的作用是将经过解析的域名指向运行中的nodejs服务。
查看文件
cat /usr/local/nginx/conf/nginx.conf
会发现最后一行会导入vhost目录下所有的.conf文件,所以前面说可以配置任意名称访问
include vhost/*.conf;
接下来将编写好的nodejs源码上传至服务器对外暴露的公共访问目录,我的目录名为wwwroot。在里面建立子文件夹,blogserver。按上面的配置方式,似乎是可以放到任意文件夹下。cd命令到该目录下,执行命令:
npm start index.js
此时通过浏览器访问地址 http://api.xuxiao.wang/ 已经有数据返回,断开xshell连接,再次访问 http://api.xuxiao.wang/ 返回nginx报错信息。可以使用后台运行命令,即使关闭xshell连接也不影响进程的运行,当然写到这我是不建议这么做的,因为存在其他更加合理的使用方式,便是使用pm2一个进程管理工具,它支持进程守护,可以进程重启。PM2 is a daemon process manager that will help you manage and keep your application online 24/7,特别喜欢它官网上的这一句介绍,更像是一个总结。
pm2启动nodejs服务,开启进程守护
pm2在高版本gcc中使用特别简单,安装完全可以按照官方提示来写,一直到运行都没有什么问题。问题会出现在低版本gcc中,pm2依赖的版本比较高,在centos6.10中可能不能运行,所以需要手动安装高版本gcc。安装方式参考文章linux(Centos)下编译安装gcc4.8.2,本文只做记录,当初遇到这个问题时没有及时记录,解决方案很简单,等待的编译时间比较长,耐心尝试,最终都会解决。