node+mongo + vue 开发管理平台部署到阿里云服务器入坑之旅

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 导语:使用vue+element-ui开发前端,node.js+express+mongodb开发后端,部署到阿里云服务器(镜像信息Node.js)。 1、申请阿里云服务器 可以申请一个最便宜的用来练手。

导语:使用vue+element-ui开发前端,node.js+express+mongodb开发后端,部署到阿里云服务器(镜像信息Node.js)。

1、申请阿里云服务器

可以申请一个最便宜的用来练手。系统镜像选择CentOS,应用镜像选择Node.js(版本4.8.4,需要升级)。

2、登录服务器

打开终端,输入sudo -i 来切换用户,输入ssh root@公网ip

sudo -i
ssh root@公网ip
输入密码(如果是第一次需要根据提示输入yes)

密码需要在服务器运维-远程连接里去设置,如图_2019_07_23_6_45_10

3、用transmit客户端连接服务器

下载transmit
_2019_07_23_6_42_44
选手sftp,输入server 公网ip、user name root 、password * 点击connect
连接到服务器,就可以把代码上传到服务器相应的文件夹里,推荐home文件夹

4、修改nginx

vi /usr/local/nginx/conf/nginx.conf

修改如下

server {
        listen 80;
        server_name _;

        return 404;
}

server {
        listen       80;
        server_name  你的域名.com www.你的域名.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {  // 这里通过nginx把所有请求都转发到node启动的服务上
            proxy_pass http://127.0.0.1:nodejs配置的端口号;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
启动nginx  常用方法
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -t #检查配置文件编写是否正确
/usr/local/nginx/sbin/nginx -s reload #Nginx平滑重启 (一般用这个就可以了)
/usr/local/nginx/nginx.conf #配置文件。

5、升级node版本

通过终端进入服务器后,输入nvm list

[root@iz2zeaxcuikwvill2ho8yiz bin]# nvm list
         v4.8.4
->      v12.6.0
default -> stable (-> v12.6.0)
node -> stable (-> v12.6.0) (default)
stable -> 12.6 (-> v12.6.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.0 (-> N/A)
lts/dubnium -> v10.16.0 (-> N/A)
[root@iz2zeaxcuikwvill2ho8yiz bin]# 

这里使用的是v12.6.0
nvm install stable来安装稳定版
nvm use stable 指定某个版本
nvm alias default stable 来改变默认版本,这样就不用每次都切换版本了
如果我们node项目中使用了es6的语法,就需要这样升级node版本

6、安装pm2

全局安装

npm install pm2 -g

用pm2来启动node项目,维护进程

pm2 start ./bin/www // 启动项目
pm2 list // 查看当前启动项
pm2 restart id // 重启指定项目
pm2 logs  // 查看node 日志

7、安装mongodb

如果项目内/usr/local 内有mongodb了就不用安装了

cd /usr/local
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.6.tgz

解压,重新命名文件夹名

tar zxvf mongodb-linux-x86_64-2.6.0.tgz
mv mongodb-linux-x86_64-2.6.0 mongodb

创建数据和日志存放目录

mkdir /var/mongodb
mkdir /var/mongodb/data
mkdir /var/mongodb/logs

打开rc.local文件,添加CentOS开机启动项:

vim /etc/rc.d/rc.local

将mongodb启动命令追加到本文件中,让mongodb开机自启动:

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log --logappend --auth --port 27017 --fork
注意 --auth有这个属性则会需要验证登录

启动mongo

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log --logappend --auth --port 27017 --fork

启动pm2 start ./bin/www,然后访问公网ip即可

碰到的开发问题

1、当用终端连接服务器报错

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:WPZj3KzLPVObBN07JKimZxPVS+3GRMMeuVj85oo8Gtw.
Please contact your system administrator.
Add correct host key in /var/root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /var/root/.ssh/known_hosts:1
ECDSA host key for 47.93.54.209 has changed and you have requested strict checking.
Host key verification failed.

当服务器重新配置的时候就会出现这种情况,服务器的ssh发生了改变,需要删除本地的缓存数据。输入vi /var/root/.ssh/known_hosts把对应公网ip的数据删除,保存即可

2、结束mongodb进程 重启mongodb

> ps -ef | grep mongod
root     20446     1  0 11:44 ?        00:00:02 /usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log --logappend --auth --port 27017 --fork
root     20941 18326  0 11:54 pts/0    00:00:00 grep --color=auto mongod
> kill -9 20446
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Web App开发 JavaScript 前端开发
Node.js开发
Node.js开发
51 13
|
1月前
|
机器学习/深度学习 JavaScript Cloud Native
Node.js作为一种快速、可扩展的服务器端运行时环境
Node.js作为一种快速、可扩展的服务器端运行时环境
52 8
|
2月前
|
存储 JavaScript 前端开发
深入浅出Node.js后端开发
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将以Node.js为例,深入探讨其背后的哲学思想、核心特性以及在实际项目中的应用,旨在为读者揭示Node.js如何优雅地处理高并发请求,并通过实践案例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和思考。
|
2月前
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
本文将带你领略Node.js的魅力,从基础概念到实践应用,一步步深入理解并掌握Node.js在后端开发中的运用。我们将通过实例学习如何搭建一个基本的Web服务,探讨Node.js的事件驱动和非阻塞I/O模型,以及如何利用其强大的生态系统进行高效的后端开发。无论你是前端开发者还是后端新手,这篇文章都会为你打开一扇通往全栈开发的大门。
|
1月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带领读者从零基础开始,一步步深入到Node.js后端开发的精髓。我们将通过通俗易懂的语言和实际代码示例,探索Node.js的强大功能及其在现代Web开发中的应用。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的见解和技巧,让你的后端开发技能更上一层楼。
|
2月前
|
JavaScript 前端开发 API
深入理解Node.js事件循环及其在后端开发中的应用
本文旨在揭示Node.js的核心特性之一——事件循环,并探讨其对后端开发实践的深远影响。通过剖析事件循环的工作原理和关键组件,我们不仅能够更好地理解Node.js的非阻塞I/O模型,还能学会如何优化我们的后端应用以提高性能和响应能力。文章将结合实例分析事件循环在处理大量并发请求时的优势,以及如何避免常见的编程陷阱,从而为读者提供从理论到实践的全面指导。
|
2月前
|
JavaScript
使用Node.js创建一个简单的Web服务器
使用Node.js创建一个简单的Web服务器
|
4天前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
154 84
|
14天前
|
机器学习/深度学习 人工智能 PyTorch
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
阿里云GPU云服务器怎么样?阿里云GPU结合了GPU计算力与CPU计算力,主要应用于于深度学习、科学计算、图形可视化、视频处理多种应用场景,本文为您详细介绍阿里云GPU云服务器产品优势、应用场景以及最新活动价格。
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
|
13天前
|
存储 运维 安全
阿里云弹性裸金属服务器是什么?产品规格及适用场景介绍
阿里云服务器ECS包括众多产品,其中弹性裸金属服务器(ECS Bare Metal Server)是一种可弹性伸缩的高性能计算服务,计算性能与传统物理机无差别,具有安全物理隔离的特点。分钟级的交付周期将提供给您实时的业务响应能力,助力您的核心业务飞速成长。本文为大家详细介绍弹性裸金属服务器的特点、优势以及与云服务器的对比等内容。