资讯专栏INFORMATION COLUMN

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

wushuiyong / 2960人阅读

摘要:比如暴露端口,选择,授权对象填,其他默认就可以了。开启性能平台,点击创建新应用按照操作提示来就行,成功开启后在项目配置具体配置看下文就可以监控数据了。

建议不熟悉 linux 命令的小伙伴同时打开我的另一篇博客linux 常用操作
服务器购买&配置

打开阿里云,选择购买云服务器 ECS,这里可以选择一键购买进行快速配置,操作系统选择 CentOS 7.2 64 位,其他默认或根据实际需求来,若选择自定义购买请自行搜索;

购买成功设置账号密码后,就可以通过 ftp 工具(我用的是 FileZilla)或者 git 连接我们的服务器了,这个时候我们也可以打开阿里云的控制台/云服务器 ECS 查看购买的服务器;

打开阿里云的控制台/云服务器 ECS/网络和安全/安全组,在安全组列表点击配置规则,点击快速创建规则,就可以暴露端口了。比如暴露 80 端口,选择 HTTP(80),授权对象填0.0.0.0/0,其他默认就可以了。暴露其他端口你就在自定义端口选择,比如暴露 7001 端口,你就在自定义端口选择 TCP,输入7001/7001即可。

开启node 性能平台,点击创建新应用按照操作提示来就行,成功开启后在项目配置(具体配置看下文))就可以监控数据了。

连接服务器

git 连接

# ssh remote_username@remote_ip 然后输入密码即可

如果ssh不存在,执行以下命令即可
# yum install openssh-client 下载客户端ssh

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

部署 node 环境

部署 node 环境

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

其他

# yum install vim 下载vim

nginx 安装&配置

nginx 安装

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

修改 nginx.conf

修改 user 为 root

修改 server 如下,这里 admin 是指向管理后台项目,app 是指向移动端项目,wx 是指向代理另一个 node 微信公众号项目(运行在 7002 端口,但微信公众号配置 http 只允许 80 端口,所以设置代理,我们的 elm 接口运行在 7001 不用代理)

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /root/www/;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location /admin/ {
    # 为空即可,前端打包文件放在/root/www/admin里面就可访问到,注意默认是index.html
    }

    location /app/ {

    }

    location /wx/ {
        proxy_pass   http://127.0.0.1:7002/;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

启动 nginx

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

其他命令

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

部署 mongodb

安装 mongodb

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

配置随 linux 启动
在/etc/rc.local 添加如下即可:

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

设置权限

# cd /usr/local/mongodb/bin
# ./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/mongodb.log -logappend -port=27017 -fork
# ./mongo
> use admin
> db.createUser(
>  {
>    user: "root",
>    pwd: "123456",
>    roles: [ { role: "root", db: "admin" } ]
> }
> )
> db.shutdownServer();
# ./mongod -dbpath=/usr/local/mongodb/data -logpath=/usr/local/mongodb/mongodb.log -logappend -port=27017 -fork --auth
# db.auth("root","123456")

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

# cnpm i egg-mongoose -S

// config/plugin.js
exports.mongoose = {
  enable: true,
  package: "egg-mongoose",
}

// config/config.default.js
config.mongoose = {
    url: "mongodb://127.0.0.1/eggadmin",
    options: {
        // 如果设置了密码
        // auth: { "authSource": "admin" },
        // user: "root",
        // pass: "123456",
    }
}

部署 node 项目
部署环境 阿里云 CentOS 7.2 64 位

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

# tar -zcvf ../file_name.tgz . 打包
# scp ../file_name.tgz remote_username@remote_ip:/root/www/server 上传到服务器

服务器

# ssh remote_username@remote_ip 连接服务器
# cd /root/www
# mkdir server 这里创建server文件夹放node项目代码
# cd server
# tar -zxvf file_name.tgz . 解压
# cnpm install --production 安装生产环境依赖

# cnpm i -g pm2 下载pm2
# pm2 start bin/www 守护进程启动
# pm2 restart app_name|app_id 重启
# pm2 stop app_name|app_id 停止
# pm2 list 查看进程状态
# pm2 stop all 停止所有应用
# pm2 start ./bin/www --watch 监听更改自动重启

egg项目

# npm start 运行
# npm stop 停止

3. 阿里 node 性能平台监控

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

# wget -O- https://raw.githubusercontent... | bash 安装版本管理工具 tnvm
# source ~/.bashrc
# tnvm ls-remote alinode 查看需要的版本
# tnvm install alinode-v3.11.4 安装需要的版本
# tnvm use alinode-v3.11. 使用需要的版本

新建 config.json 文件如下,从[node 性能平台](https://node.console.aliyun.com/#!/owned)获取对应的接入参数

{

"appid": "",
"secret": ""
}

# cnpm install @alicloud/agenthub -g 安装 agenthub
# agenthub start config.json 启动agenthub
# agenthub list 查看 agenthub 列表
# ENABLE_NODE_LOG=YES pm2 start bin/www 使用pm2管理的应用

2. egg 项目

# cnpm i nodeinstall -g
# nodeinstall --install-alinode ^3
# cnpm i egg-alinode --save
# npm start

// config/plugin.js
exports.alinode = {

 enable: true,
 package: "egg-alinode",

};

// config/config.default.js
config.alinode = {

 appid: "",
 secret: "",

};

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

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

## 项目实战

[全栈项目-基于 koa 框架 egg 的服务端接口](https://github.com/majun00/egg-api) 求一个 star~

> 本人水平有限,欢迎大家交流指正。本文为作者原创,转载请注明出处。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40218.html

相关文章

  • 前端容器化——Node.Js & Mongodb

    摘要:另外,中间件还提供了诸如日志记录之类功能,便于查询任务状态以及信息。 DevOps大热,这里我们借着上线一个node中间件,简单介绍下前端容器化相关的内容 原文:http://blog.thonatos.com/dockerizing-your-frontend-project/ (很多东西还来不及写,有时间再补充吧T.T,比如:如何快速在服务器部署vpn神马の一定很有用...) In...

    luckyw 评论0 收藏0
  • 阿里ECS务器部署node项目和vue项目

    摘要:阿里云服务器部署项目和项目遇到的问题第三章申请阿里云服务器阿里云服务器地址第一次啥都不懂选的数据中心版位中文版不含。步骤输入申请阿里云服务器时候创建的登录名和登录密码,点击链接。 阿里云ECS服务器部署node项目和vue项目遇到的问题(第三章) 申请阿里云ECS服务器阿里云服务器地址 showImg(https://segmentfault.com/img/bVbgeNh?w=9...

    dance 评论0 收藏0
  • container-as-a-service-0x01 -- 基于Docker私有&混合

    摘要:基于的私有云混合云构建方案苏依蜀黍是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的可移植的自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括虚拟机集群和其他的基础应用平台。 container-as-a-service-0x01 -- 基于Docker的私有云&混合云构建方案 By 苏依蜀黍 . 2016.06.07 what Docker是一...

    import. 评论0 收藏0
  • 务器小白我,是如何成功将 node+mongodb 项目部署务器上并进行性能优化

    摘要:前言本文讲解的是做为前端开发人员,对服务器的了解还是小白的我,是如何一步步将项目部署在阿里云的服务器上,并进行性能优化,达到页面秒内看到,秒内看到首屏内容的。搭建的项目是采用了主流的前后端分离思想的,这里只讲服务器环境搭建与性能优化。 showImg(https://segmentfault.com/img/remote/1460000017143281); 前言 本文讲解的是:做为前...

    zsy888 评论0 收藏0
  • 阿里ECS务器部署Node.js项目全过程详解

    摘要:本文详细介绍如何部署项目到阿里云上,以及本人在部署过程中所遇到的问题坑点和解决办法,可以说是全网最全最详细的教程了。同时讲解了如何申请阿里云免费证书,以及一台服务器配置多网站的配置方法等。优惠券阿里云产品通用代金券最高元。 本文详细介绍如何部署NodeJS项目到阿里云ECS上,以及本人在部署过程中所遇到的问题、坑点和解决办法,可以说是全网最全最详细的教程了。同时讲解了如何申请阿里云免费...

    XboxYan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<