CentOS镜像+Nginx反向代理+NodeJS部署上线
快速简单使用CentOS系统镜像搭建Nginx反向代理配置NodeJS部署网站上线
CentOS系统镜像
镜像是什么?
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
本次实例采用CentOS系统镜像搭建
Nginx配置
Nginx是一个高性能的HTTP和反向代理服务,许多的大型网站都会采用Nginx来进行HTTP服务器托管
安装编译环境gcc g++
进入到root目录: cd /rood/
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安装PCRE
PCRE功能时让Nginx有rewrite功能,下载PCRE
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
解压安装包
tar zxvf pcre-8.35.tar.gz
进入安装包目录: cd pcre-8.35
编译: ./configure
安装:make && make install
安装Nginx
回到root目录: cd /root/
wget http://nginx.org/download/nginx-1.16.0.tar.gz
解压安装包:
tar zxvf nginx-1.16.0.tar.gz
注意:这里要选好当前解压地址,解压完成就是Nginx所在的目录,本次实例在root根目录下解压
进入到安装目录: cd nginx-1.16.0
编译: ./configure --with-http_ssl_module
安装: make && make install
启动和停止Nginx:
进入到Nginx安装目录: cd /root/nginx/sbin/
启动Nginx: ./nginx
停止Nginx: ./nginx -s stop
配置Nginx配置文件
进入到Nginx配置文件目录: cd /root/nginx/conf/
打开Nginx配置文件: vim nginx.conf
修改完配置文件 ,记得重启Nginx,可使用 ./nginx -s reload 命令
安装配置Node.js
下载Node.js
wget https://nodejs.org/dist/v10.11.0/node-v10.11.0-linux-x64.tar.xz
解压,同样在root根目录下:
tar xvf node-v10.11.0-linux-x64.tar.xz
创建软连接,使node和npm命名全局有效
ln -s /root/node-v10.11.0-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v10.11.0-linux-x64/bin/npm /usr/local/bin/npm
ln -s /usr/local/bin/node /bin/node
ln -s /usr/local/bin/npm /bin/npm
验证Node.js安装成功:node -v (出现版本号即安装成功)
安装PM2管理Node.js服务
PM2是Node.js进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。
主要特性:
- 内建负载均衡(使用node cluster集群模块,可是使用服务器上的所有cpu)
- 后台运行(node app.js 这种命令是直接在前台运行的,不稳定,很容易断)
- 0秒停机重载
- 停止不稳定的进程,避免无限循环
- 控制台检测
安装PM2(全局安装):
npm install -g pm2
创建软连接,使pm2命令全局有效:
ln -s /root/node-v10.11.0-linux-x64/bin/pm2 /usr/local/bin/pm2
ln -s /usr/local/bin/pm2 /bin/pm2
打包项目,发布服务器
打包前端Vue文件
npm run build
将dist生成的文件拷贝到Node项目public目录下,然后将Node项目放到服务器上,可以选择FTP工具
启动Node项目
进入Node项目根目录
pm2 start app.js --name kanglang-music
使用 pm2 list 可以查看项目运行情况
重启项目服务
pm2 restart kanglang-music
提醒:千万不要忘记了防火墙
最后附上:
线上访问地址: Vue高仿网易云音乐移动端WebApp
源码地址:github源代码