|
|
51CTO旗下网站
|
|
移动端

服务器部署前端&Node 项目(包括阿里云服务器、nginx 以及 mongoDB 的配置)

打开阿里云的控制台/云服务器 ECS/网络和安全/安全组,在安全组列表点击配置规则,点击快速创建规则,就可以暴露端口了。

作者:奋斗蒙来源:Java帮帮|2019-01-14 10:27

 服务器购买&配置

  1. 打开阿里云,选择购买云服务器 ECS,这里可以选择一键购买进行快速配置,操作系统选择 CentOS 7.2 64 位,其他默认或根据实际需求来,若选择自定义购买请自行搜索;
  2. 购买成功设置账号密码后,就可以通过 ftp 工具(我用的是 FileZilla)或者 git 连接我们的服务器了,这个时候我们也可以打开阿里云的控制台/云服务器 ECS 查看购买的服务器;
  3. 打开阿里云的控制台/云服务器 ECS/网络和安全/安全组,在安全组列表点击配置规则,点击快速创建规则,就可以暴露端口了。比如暴露 80 端口,选择 HTTP(80),授权对象填0.0.0.0/0,其他默认就可以了。暴露其他端口你就在自定义端口选择,比如暴露 7001 端口,你就在自定义端口选择 TCP,输入7001/7001即可;
  4. 开启node 性能平台,点击创建新应用按照操作提示来就行,成功开启后在项目配置(具体配置看下文))就可以监控数据了。

连接服务器

1.git 连接

  1. # ssh remote_username[@remote_ip](/user/remote_ip) 然后输入密码即可 
  2.  
  3. 如果ssh不存在,执行以下命令即可 
  4. # yum install openssh-client 下载客户端ssh 

2.ftp 工具连接(这里以 FileZilla 为例),下载 filezilla 后,点击新建站点,输入主机 ip,选择 sftp 协议,选择登录类型为正常,输入账号密码即可。

部署 node 环境

1.部署 node 环境

  1. # ssh remote_username[@remote_ip](/user/remote_ip) 连接服务器 
  2. # wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz 下载node压缩文件 
  3. # tar xvf node-v6.9.5-linux-x64.tar.xz 解压 
  4. # ln -s /root/node-v6.9.5-linux-x64/bin/node /usr/local/bin/node 创建软连接 
  5. # ln -s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm 创建软连接 
  6. # node -v 查看node版本 
  7. # npm -v 查看npm版本 

2.其他

  1. # yum install vim 下载vim 

nginx 安装&配置

1.nginx 安装

  1. # yum install epel-release 下载epel-release 
  2. # yun install nginx 下载nginx 
  3. # cd /etc/nginx 
  4. # vim nginx.conf 用vim打开nginx.conf 

2.修改 nginx.conf

  • 修改 user 为 root
  • 修改 server 如下,这里 admin 是指向管理后台项目,app 是指向移动端项目,wx 是指向代理另一个 node 微信公众号项目(运行在 7002 端口,但微信公众号配置 http 只允许 80 端口,所以设置代理,我们的 elm 接口运行在 7001 不用代理)
  1. server { 
  2.     listen       80 default_server; 
  3.     listen       [::]:80 default_server; 
  4.     server_name  _; 
  5.     root         /root/www/; 
  6.  
  7.     # Load configuration files for the default server block. 
  8.     include /etc/nginx/default.d/*.conf; 
  9.  
  10.     location /admin/ { 
  11.     # 为空即可,前端打包文件放在/root/www/admin里面就可访问到,注意默认是index.html 
  12.     } 
  13.  
  14.     location /app/ { 
  15.  
  16.     } 
  17.  
  18.     location /wx/ { 
  19.         proxy_pass   http://127.0.0.1:7002/; 
  20.     } 
  21.  
  22.     error_page 404 /404.html; 
  23.         location = /40x.html { 
  24.     } 
  25.  
  26.     error_page 500 502 503 504 /50x.html; 
  27.         location = /50x.html { 
  28.     } 

3.启动 nginx

  1. nginx -t 测试nginx语法是否有误 
  2. nginx 启动nginx 
  3. nginx -s reload 重启nginx,修改nginx.conf后记得重启 

4.其他命令

  1. ps -ef | grep nginx 显示nginx进程 
  2. nginx -s stop 停止nginx 
  3. nginx -v 查看nginx版本 

部署 mongodb

1.安装 mongodb

  1. # ssh remote_username[@remote_ip](/user/remote_ip) 连接服务器 
  2. # curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 下载 
  3. # tar -zxvf mongodb-linux-x86_64-3.0.6.tgz 解压 
  4. # mkdir data 创建数据库文件夹 
  5. # touch mongodb.log 创建日志文件 
  6. # cd /usr/local/mongodb/bin 
  7. # ./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/mongodb.log -logappend -port=27017 -fork 注意fork是后台启动,避免又要再开窗口重新连接服务器再能进行其他操作 
  8. # ./mongo 连接mongodb 

2.配置随 linux 启动

在/etc/rc.local 添加如下即可:

  1. # rm /usr/local/mongodb/data/mongod.lock 停止可能在运行的mongo 
  2. # /.../bin/mongod -dbpath /usr/local/mongodb/data -logpath /usr/local/mongodb/mongodb.log -logappend -fork -port 27017 

3.设置权限

  1. # cd /usr/local/mongodb/bin 
  2. # ./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/mongodb.log -logappend -port=27017 -fork 
  3. # ./mongo 
  4. > use admin 
  5. > db.createUser( 
  6. >  { 
  7. >    user"root"
  8. >    pwd: "123456"
  9. >    roles: [ { role: "root", db: "admin" } ] 
  10. > } 
  11. > ) 
  12. > db.shutdownServer(); 
  13. # ./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/mongodb.log -logappend -port=27017 -fork --auth 
  14. # db.auth("root","123456"

4.项目中连接 mongodb(这里以 koa 框架 egg 项目为例,其他 node 请自行查找)

  1. # cnpm i egg-mongoose -S 
  2.  
  3. // config/plugin.js 
  4. exports.mongoose = { 
  5.   enable: true
  6.   package: 'egg-mongoose'
  7.  
  8. // config/config.default.js 
  9. config.mongoose = { 
  10.     url: 'mongodb://127.0.0.1/eggadmin'
  11.     options: { 
  12.         // 如果设置了密码 
  13.         // auth: { "authSource""admin" }, 
  14.         // user"root"
  15.         // pass: "123456"
  16.     } 

部署 node 项目

部署环境 阿里云 CentOS 7.2 64 位

1.本地项目根目录(删除 node_modules,建议依赖在服务器下载)

  1. # tar -zcvf ../file_name.tgz . 打包 
  2. # scp ../file_name.tgz remote_username[@remote_ip](/user/remote_ip):/root/www/server 上传到服务器 

2.服务器

  1. # ssh remote_username[@remote_ip](/user/remote_ip) 连接服务器 
  2. # cd /root/www  
  3. # mkdir server 这里创建server文件夹放node项目代码  
  4. # cd server  
  5. # tar -zxvf file_name.tgz . 解压  
  6. # cnpm install --production 安装生产环境依赖  
  7. 1. koa项目(express项目类似)  
  8. # cnpm i -g pm2 下载pm2  
  9. # pm2 start bin/www 守护进程启动  
  10. # pm2 restart app_name|app_id 重启  
  11. # pm2 stop app_name|app_id 停止  
  12. # pm2 list 查看进程状态  
  13. # pm2 stop all 停止所有应用  
  14. # pm2 start ./bin/www --watch 监听更改自动重启  
  15. 2. egg项目  
  16. # npm start 运行  
  17. # npm stop 停止 

3.阿里 node 性能平台监控

1)koa 项目(express 项目类似)

  1. # wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash 安装版本管理工具 tnvm 
  2. # source ~/.bashrc 
  3. # tnvm ls-remote alinode 查看需要的版本 
  4. # tnvm install alinode-v3.11.4 安装需要的版本 
  5. # tnvm use alinode-v3.11. 使用需要的版本 

新建 config.json 文件如下,从node 性能平台获取对应的接入参数

  1.  "appid""<YOUR APPID>"
  2.  "secret""<YOUR SECRET>" 
  3.  } 
  1. # cnpm install [@alicloud](/user/alicloud)/agenthub -g 安装 agenthub 
  2. # agenthub start config.json 启动agenthub 
  3. # agenthub list 查看 agenthub 列表 
  4. # ENABLE_NODE_LOG=YES pm2 start bin/www 使用pm2管理的应用 

2)egg 项目

  1. # cnpm i nodeinstall -g 
  2. # nodeinstall --install-alinode ^3 
  3. # cnpm i egg-alinode --save 
  4. # npm start 
  5. // config/plugin.js 
  6. exports.alinode = { 
  7.   enable: true
  8.   package: 'egg-alinode'
  9. }; 
  10.  
  11. // config/config.default.js 
  12. config.alinode = { 
  13.   appid: '<YOUR_APPID>'
  14.   secret: '<YOUR_SECRET>'
  15. }; 

部署前端项目(这里以 vue 为例)

在项目根目录npm run build,然后把 dist 文件夹里的内容传到服务器,这里我们把两个项目分部传到/root/www/app 和/root/www/admin,记得提前创建 app 和 admin 文件夹。

【编辑推荐】

  1. 云促闷声大发财 2018年服务器市场回顾
  2. Nginx服务器的高性能原理之IO复用
  3. 深入考察无服务器架构的安全威胁,SLS-1:事件注入
  4. 浅谈Tomcat服务器优化方法
  5. Nginx服务器架构揭秘
【责任编辑:武晓燕 TEL:(010)68476606】


点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

活学活用 Ubuntu Server

活学活用 Ubuntu Server

实战直通车
共35章 | UbuntuServer

216人订阅学习

Java EE速成指南

Java EE速成指南

掌握Java核心
共30章 | 51CTO王波

83人订阅学习

Mysql DBA修炼之路

Mysql DBA修炼之路

MySQL入门到高阶
共24章 | 武凤涛

468人订阅学习

读 书 +更多

八万里路云和月——一个国家扶贫开发工作重点县的

通榆,这个距离各个交通枢纽都十万八千里的偏僻小县城,搭载着电子商务的快车,踏上了云高速,开辟了如火如荼的电商致富的新战场,实现了一...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客