阿里云服务器部署web项目全过程

 

咱们在本地编写完Node.js项目,须要将文件打包上传到云服务器,其余人才能够经过url地址来访问和浏览咱们编写的程序,在申请、配置阿里云ECS服务器的时候也是踩坑无数,看了网上不少大神的文章,本身也尝试汇总整理了一下,文中涵盖的知识点比较多,大概包含以下几个方面:html

  • 申请阿里云免费服务器
  • 安装node.js
  • 安装Nginx服务器
  • 安装mongoDB数据库
  • 安装pm2进程管理工具
  • 安装本地FTP
  • 上线移动端项目

以前还写过一篇《阿里云服务器崩溃自救指南》,若是在本地误删了某些文件致使服务器崩溃,能够参考我总结的步骤尝试恢复一下。node

注:本人使用的是MacOS系统,若是是windows环境,文中的部分操做会有所不一样。linux

申请阿里云免费服务器

注册阿里云帐号nginx

在首页选择你的登陆方式,能够经过阿里旗下的第三方服务登陆。c++

imagegit

这里我使用支付宝登录,扫码进入页面后点击受权便可。web

image正则表达式

若是没有阿里云帐号的话,能够输入会员名和手机号码进行快速注册。算法

imagemongodb

注册以后进入到ECS管理控制台页面

image

在最新活动中找到新手上路,咱们能够申请阿里云免费套餐,试用时长为一个月。

image

image

我的实名认证

选择我的版,申请以前须要进行我的实名认证

image

点击我的实名认证连接进入实名认证页面,选择我的实名认证

image

推荐我的支付宝受权认证,跳转页面后输入家庭住址就能够完成认证了。

image

申请阿里云免费服务器

认证完成后点击当即抢购按钮申请免费云服务器

image

点击免费领取按钮,选择Centos/ 7.6 64位操做系统。

 

image

勾选赞成协议,点击当即领取按钮,便可领取成功。

 

image

此时再进入管理控制台页面就能够看到有一台云服务器正在运行

image

重置实例密码

在更多中找到重置实例密码,点击设置密码。

image

该密码不是你的阿里云帐号登陆密码,而是你的云服务器访问密码,必须由大写字母、小写字母、数字、特殊符号中的三项构成。

image

重启实例

重置实例以后,点击右上角重启实例。

image

在弹出的页面中点击肯定按钮

image

重启实例以后会显示中止中状态,大概须要等待30秒。

image

配置安全组

在侧边栏网络与安全中找到安全组,点击右边的配置规则

image

端口范围填入:1/60000,为了使用更多服务,若是这个端口范围填的过小了,像mongodb这种27017端口的数据库就没法安装。受权对象为0.0.0.0/0,为了让全部端口均可以访问。

image

点击肯定保存,就能够在页面中看到咱们配置好的安全组。

image

远程链接

可使用它自带的远程链接,链接服务器。

image

点击远程链接,系统会给你提供一个密码用于远程链接你的云服务器,该密码只出现一次,出现的时候须要记录下来。

image

在远程链接中用户名为:root,点击回车输入以前重置过的实例访问密码(默认输入密码的时候是不显示的,输入完成后点击回车便可)。

image

可是咱们通常不推荐在远程链接中访问服务器,缘由是:若是超过一分钟没有操做就会自动断开链接,须要从新输入远程链接密码,比较繁琐。并且在它的控制台中没法复制粘贴指令,只能经过其窗口右上角的复制命令输入来操做,比较麻烦。

image

咱们能够在本地终端cmd中经过ssh命令来访问云服务器

 

git ssh root@39.96.84.220(你的公网IP)

能够在实例的配置信息中找到公网IP

image

链接成功后运行查看文件命令:

 

cd /
ls

image

安装node.js

运行yum命令在云服务器上安装Node.js

 

sudo yum install nodejs

安装成功后显示完毕,运行node -v查看版本号:

image

安装Nginx服务器(静态服务器)

具体操做步骤出自这篇文章:

《CentOS 7 下安装 Nginx》

https://www.linuxidc.com/Linux/2016-09/134907.htm

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP三、SMTP代理服务器;Nginx能够做为一个HTTP服务器进行网站的发布处理,另外Nginx能够做为反向代理进行负载均衡的实现。

1. gcc 安装

安装 nginx 须要先将官网下载的源码进行编译,编译依赖 gcc 环境,若是没有 gcc 环境,则须要安装:

 

yum install gcc-c++

安装成功:

image

2. PCRE pcre-devel 安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,因此须要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也须要此库。命令:

 

yum install -y pcre pcre-devel

安装成功:

image

3. zlib 安装

zlib 库提供了不少种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,因此须要在 Centos 上安装 zlib 库。

 

yum install -y zlib zlib-devel

安装成功:

image

**3. **OpenSSL 安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、经常使用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不只支持 http 协议,还支持 https(即在ssl协议上传输http),因此须要在 Centos 安装 OpenSSL 库。

 

yum install -y openssl openssl-devel

安装成功:

image

4.下载nginx安装包

(1)第一种方式:直接下载.tar.gz安装包,nginx官网地址:https://nginx.org/en/download.html

image

(2)第二种方式(推荐):使用wget命令下载

 

wget -c https://nginx.org/download/nginx-1.10.1.tar.gz

我下载的是1.10.1版本,这个是目前的稳定版。

image

5. 解压

依然是直接命令:

 

tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1

6. 配置

在 nginx-1.10.1 版本中你就不须要去配置相关东西,使用默认配置就能够了。

 

./configure

7. 编译安装

 

make
make install

查找安装路径:

 

whereis nginx

image

8. 启动、中止、重启nginx

 

cd /usr/local/nginx/sbin/
./nginx

查询nginx进程:

 

ps aux|grep nginx

image

启动成功后,在浏览器能够看到这样的页面:

image

./nginx -s stop:此方式至关于先查出nginx进程id再使用kill命令强制杀掉进程。
./nginx -s quit:此方式中止步骤是待nginx进程处理任务完毕进行中止。

重启nginx

(1)第一种方式:先中止再启动(推荐):
对 nginx 进行重启至关于先中止再启动,即先执行中止命令再执行启动命令。以下:

 

./nginx -s quit
./nginx

(2)第二种方式:从新加载配置文件:
当 nginx的配置文件 nginx.conf 修改后,要想让配置生效须要重启 nginx,使用-s reload不用先中止 ngin x再启动 nginx 便可将配置信息在 nginx 中生效,以下:

 

./nginx -s reload

9. 开机自启动

即在rc.local增长启动代码就能够了。

 

vi /etc/rc.local

输入字母i出现—INSERT—,按键盘上下键控制光标

image

将以下代码复制粘贴

 

/usr/local/nginx/sbin/nginx

按esc键退出,输入强制保存退出命令:

 

:wq!

到这里,nginx就安装完毕了,启动、中止、重启、开机自启动操做也都完成了。

image

安装mongoDB数据库

具体操做步骤出自这篇文章:

《centos7安装MongoDB3.4》

https://www.cnblogs.com/web424/p/6928992.html

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构很是松散,是相似json的bson格式,所以能够存储比较复杂的数据类型。Mongo最大的特色是他支持的查询语言很是强大,其语法有点相似于面向对象的查询语言,几乎能够实现相似关系数据库单表查询的绝大部分功能,并且还支持对数据创建索引。

1. 建立yum源文件

 

vim /etc/yum.repos.d/mongodb-org-3.4.repo

2. 添加如下内容

 

[mongodb-org-3.4]  
name=MongoDB Repository  
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/  
gpgcheck=1  
enabled=1  
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

字母i表明INSERT写入

image

复制上面内容粘贴后按esc,输入

 

:(冒号)wq!(感叹号)

image

强制保存并退出

image

3. 安装MongoDB

安装命令:

 

yum -y install mongodb-org

安装完成后显示:

image

4. 安装完成后,查看mongo安装位置

 

whereis mongod

image

查看修改配置文件 的命令是:vim /etc/mongod.conf

5. 启动mongodb

 

systemctl start mongod.service

顺便说一下中止mongodb的命令是 :systemctl stop mongod.service

6. 查看mongodb的状态

 

systemctl status mongod.service

显示active(running)说明已经成功开启。

image

7. 中止防火墙

CentOS 7.0默认使用的是firewall做为防火墙,这里改成iptables防火墙。

外网访问须要关闭firewall防火墙:

 

systemctl stop firewalld.service

8. 禁止防火墙开机启动

 

systemctl disable firewalld.service

9. 设置开机启动

 

systemctl enable mongod.service

img

10. 启动Mongo shell查看数据库

执行完以上操做步骤后输入命令:mongo,查看数据库show dbs

image

11. 设置mongodb远程访问

设置完以后能够在本地链接数据库

输入

 

vim /etc/mongod.conf

编辑mongod.conf配置文件,找到bindIP,在前面按i输入#注释掉这一行,输入:wq!保存退出。

image

12. 重启mongodb

 

systemctl restart mongod.service

image

安装pm2进程管理工具

PM2是node进程管理工具,能够利用它来简化不少node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。

当咱们在服务器中启动node服务时若是直接经过npm start或者node index.js启动,则一旦退出ssh远程登陆,或者在本地关闭终端则服务就会中止运行,因此咱们要安装pm2这个node进程管理工具,经过pm2 start来开启进程就不会出现这个问题了。

全局安装命令:

 

npm install -g pm2

image

安装成功后运行pm2 list查看全部进程状态

image

安装本地FTP

这里推荐使用FileZilla,这是一款免费、开源、跨平台的FTP软件,mac系统windows系统的用户均可以放心食用。这里咱们使用SFTP链接,端口号默认值是22.

image

链接成功后会列出root下的目录

image

上线移动端项目

1. 修改项目配置文件

找到项目的Vue-config.js配置文件,在module.exports中将publicPath: 改成:'/v-douban/'。

image

同时本地请求数据的路径也须要加上/v-douban

image

2. 打包文件

执行yarn build将项目打包成dist文件包

3. 链接FTP服务器,修改nginx

进入/usr/local/nginx/conf目录,传输nginx.config文件到本地。

image

修改nginx.config文件,配置数据接口代理。

 

location /api/db {
            proxy_pass http://47.96.0.211:9000/db;
        } 

        location /data/my {
            proxy_pass http://118.31.109.254:8088/my;
        } 

        location /douban/my {
            proxy_pass http://47.111.166.60:9000/my;
        }

上传新的nginx.config文件到服务器,覆盖原文件。

image

在终端链接数据库,而且重启nginx服务器。

 

./nginx -s reload

image

进入/usr/local/nginx/html目录建立一个v-douban文件夹

image

将打包后的dist文件夹中的全部文件上传到服务器

image

传输完成后,便可在网页中访问上线项目http://39.96.84.220/v-douban

image

线上浏览效果:

image

 

image

做者:视觉派Pie 连接:https://www.jianshu.com/p/3693dad9b574 来源:简书 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

相关文章
相关标签/搜索