通过阿里云ECS从零开始构建网站

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 为帮助大家基于ECS构建自己的网站,本文将逐步介绍如何在ECS上架设自己的网站。现在网站主流的技术一般都采用Nginx+Mongodb+NodeJS,本教程将就此技术进行介绍,具体所涉及到的技术栈如下表所示:

Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务。使用云服务器 ECS 就像使用水、电、煤气等资源一样便捷、高效。无需提前采购硬件设备,而是根据业务需要,随时创建所需数量的云服务器实例,并在使用过程中,随着业务的扩展,对云服务器进行扩容磁盘、增加带宽。如果不再需要云服务器,也可以方便的释放资源,节省费用。此外,阿里云服务器超低折扣正在进行中,最低每月仅需30元,详情访问活动页

为帮助大家基于ECS构建自己的网站,本文将逐步介绍如何在ECS上架设自己的网站。现在网站主流的技术一般都采用Nginx+Mongodb+NodeJS,本教程将就此技术进行介绍,具体所涉及到的技术栈如下表所示:

系统组件 简介
Nginx nginx(发音"engine x")是俄罗斯软件工程师Igor Sysoev开发的免费开源web服务器软件。nginx于2004年发布,聚焦于高性能,高并发和低内存消耗问题。并且具有多种web服务器功能特性:负载均衡,缓存,访问控制,带宽控制,以及高效整合各种应用的能力,这些特性使nginx很适合于现代网站架构。目前,nginx已经是互联网上第二流行的开源web服务器软件。
MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。面向文档存储,操作起来比较简单和容易,在一些业务场景甚至可替代Mysql
NodeJS Node.js就是运行在服务器端的javascript。node.js是一个基于Chrome Javascript运行时建立的一个平台。是一个事件驱动I/O服务端JavaScript环境(由C++编写),基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

配置yum源

由于ECS系统默认依赖包不全,需要添加epel源,以后后期依赖包的完整下载,具体配置步骤如下:

  1. wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  2. rpm -ivh epel-release-latest-7.noarch.rpm
    然后通过下列命令检查是否已添加至源列表
  3. yum repolist   

如果运行命令后,看到下图红色部分,这说明已经配置成功。
1

准备相关依赖包

由于后续的服务器及nginx等在安全上、正则表达式方面有相关包的依赖,因此添加完epel源之后,还需通过下列命令下载相关依赖包,yum部署会根据需求,自行下载相关依赖包

  1. yum install zlib pcre pcre-devel openssl openssl-devel pcre zlib -y
    具体过程如下图所示

4444
如果出现下图红色部分“complete”字样,则表示相关依赖包顺利下载完成,如
2

服务搭建

完成前面Yum源的配置及依赖包的下载之后,便可以架设本次网站需要的服务了,首先需要对Nginx进行编译部署,具体步骤如下:

  1. 下载Nginx包,将包放到 /opt目录下;(过程如图)
    执行命令: cd /opt && wget http://nginx.org/download/nginx-1.10.0.tar.gz

命令执行成功的话,可以看到如下图所示的结果页面。
3
4

  1. 然后通过执行下列命令进行默认编译安装
  2. zxvf nginx-1.10.0.tar.gz && cd nginx-1.10.0 && ./configure --prefix=/opt/nginx && make && make install

编译安装成功后会得到如下图所示的结果:
5

  1. 为取得良好的性能,我们安装两个Nginx服务,按照第二步重复执行命令即可。
    需要注意的是需要对prefix指定的安装目录进行修改,此处修改为Nginx_28819,如下图所示

6

  1. 完成后,需要修改Nginx_28819服务端口,在文件路径: /opt/nginx_28819/conf/下找到nginx.conf文件,然后执行下列命令:
  2. -i 's/80/28819/' /opt/nginx_28819/conf/nginx.conf

通过此命令旨在将原先配置文件80端口更改为28819端口,这么做的原因很简单:同一台机器两个服务端口一样,是不能正常启动,故需要修改端口

  1. 在正式启动Nginx服务之前,需要对配置文件Nginx.conf进行校验,以避免出现不必要的问题,具体执行命令如下:
    /opt/nginx/sbin/nginx –t

没有问题的话,将出现如下图所示的结果
7
然后再执行下列命令
/opt/nginx_28819/sbin/nginx –t
如果出现下图红色标识的结果,则表示校验通过
8
完成校验后,通过下列命令启动nginx
/opt/nginx/sbin/nginx && /opt/nginx_28819/sbin/nginx
然后通过下列两条命令验证nginx是否正常运行:
netstat –ntlp|grep 80
netstat –ntlp|grep 28819
如果正常运行,将出现下图的结果。
9
至此,完成ngnix部署与启动。

完成nginx编译部署、启动之后,需要再安装部署授权模式Mongodb,具体步骤如下:

  1. 首先通过执行下列命令下载Mongodb 
  2. https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.4.tgz

11
下载完成后,在当前目录下会出现mongodb对应的安装文件,如下图所示
13

  1. 下载完成后,需要对Mongodb安装包进行解压,然后并重命名文件夹为mongod(为简化操作起见),然后再创建DB和log文件夹,并创建日志文件,执行命令如下:
  2. zxvf mongodb-linux-x86_64-rhel70-3.2.4.tgz && mv mongodb-linux-x86_64-rhel70-3.2.4 mongod && cd mongodb && mkdir db && mkdir log && touch /opt/mongod/log/mongodb.log
  3. 完成前述操作后,直接通过下列命令启动服务端Mongodb并指定端口为28820
  4. bin/mongod --dbpath=/opt/mongod/db --logpath=/opt/mongod/log/mongodb.log --port=28820 &
  5. 然后通过下列命令添加用户并验证是否正常启动
    /opt/mongod/bin/mongo 主机IP:28820

具体如下图所示:
16
在交互式命令行中敲入命令:use admin,如下图所示
12
通过此命令进行管理员用户模式,在该模式下可以创建用户,此处帐号设定为zzhgreentown, 密码设定为greentown。然后在交互命令行中敲入命令:
db.createUser(
{

user: "zzhgreentown",
pwd: "greentown",
roles: [ { role: "root", db: "admin" } ]

}
)

  1. 完成用户创建后,重启Mongodb服务,并以授权模式启动,具体执行命令如下:
  2. -9 ps -ef|grep mon|grep -v grep|awk '{print $2}' && setsid bin/mongod --dbpath=/opt/mongod/db --logpath=/opt/mongod/log/mongodb.log --auth --port=28820 &

完成后,通过show dbs验证服务是否正常重启,主要确认:进程是否在;端口是否正常监听;登录Mongodb;匿名及登录查看admin是否报错,如下图所示:
14
至此,完成MongoDB的安装与部署。

最后,需要配置NodeJS环境,具体步骤如下:

  1. 进行Node部署,执行如下命令:
  2. /opt && wget http://nodejs.org/dist/v6.10.2/node-v6.10.2.tar.gz && ./configure --prefix=/usr/local/node && make && make install

然后通过node –v命令进行部署验证,如下图所示:
15

  1. 然后执行下列命令进行Npm部署
  2. install –y npm htop && npm install -g pm2

完成后,通过npm –v命令验证部署,如下图所示:
17
至此NodeJS环境部署完成。

部署代码包&&验证

源码包含三个文件夹: ylj.zip(杨柳郡报名页面),client.zip(后端管理页面),server.zip(服务端)如下图
18

  1. unzip ylj.zip将解压的html文件夹移至/opt/nginx(mv html/ /opt/nginx)文件夹下
  2. unzip client.zip将解压的html文件夹移至/opt/nginx_28819(mv html/ /opt/nginx_28819)文件夹下
  3. unzip server.zip;cd server;然后执行命令npm i —-production(持续时间稍长),待完成后执行pm2 start index.js开启服务即可完成部署。

页面效果图:
20

参考文档:
http://www.nginx.cn/doc/general/overview.html
http://www.runoob.com/mongodb/mongodb-intro.html
http://blog.csdn.net/u012299002/article/details/51101016 http://www.centoscn.com/image-text/config/2014/1108/4095.html

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
12天前
|
人工智能 弹性计算 编解码
阿里云GPU云服务器性能、应用场景及收费标准和活动价格参考
GPU云服务器作为阿里云提供的一种高性能计算服务,通过结合GPU与CPU的计算能力,为用户在人工智能、高性能计算等领域提供了强大的支持。其具备覆盖范围广、超强计算能力、网络性能出色等优势,且计费方式灵活多样,能够满足不同用户的需求。目前用户购买阿里云gpu云服务器gn5 规格族(P100-16G)、gn6i 规格族(T4-16G)、gn6v 规格族(V100-16G)有优惠,本文为大家详细介绍阿里云gpu云服务器的相关性能及收费标准与最新活动价格情况,以供参考和选择。
|
17天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。
|
19天前
|
存储 分布式计算 固态存储
阿里云2核16G、4核32G、8核64G配置云服务器租用收费标准与活动价格参考
2核16G、8核64G、4核32G配置的云服务器处理器与内存比为1:8,这种配比的云服务器一般适用于数据分析与挖掘,Hadoop、Spark集群和数据库,缓存等内存密集型场景,因此,多为企业级用户选择。目前2核16G配置按量收费最低收费标准为0.54元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.08元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
17天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
|
25天前
|
弹性计算
阿里云2核16G服务器多少钱一年?亲测价格查询1个月和1小时收费标准
阿里云2核16G服务器提供多种ECS实例规格,内存型r8i实例1年6折优惠价为1901元,按月收费334.19元,按小时收费0.696221元。更多规格及详细报价请访问阿里云ECS页面。
63 9
|
22天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
25天前
|
弹性计算 异构计算
2024年阿里云GPU服务器多少钱1小时?亲测价格查询方法
2024年阿里云GPU服务器每小时收费因实例规格不同而异。可通过阿里云GPU服务器页面选择“按量付费”查看具体价格。例如,NVIDIA A100的gn7e实例为34.742元/小时,NVIDIA A10的gn7i实例为12.710156元/小时。更多详情请访问阿里云官网。
74 2
|
1月前
|
关系型数据库 API 数据库
后端开发的艺术:从零到一构建高效服务器
在数字化时代,后端开发是支撑现代互联网应用的基石。本文旨在探讨后端开发的核心概念、关键技术以及如何构建一个高效的服务器。我们将从基础的编程语言选择开始,逐步深入到数据库设计、API开发和性能优化等关键领域。通过实际案例分析,我们将揭示后端开发的复杂性和挑战性,同时提供实用的解决方案和最佳实践。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和启发。
|
1月前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
73 3
|
2月前
|
存储 弹性计算 编解码
通过阿里云的活动租赁云服务器时如何选择实例规格?选择指南参考
新手用户通过阿里云的活动租赁云服务器的时候实例规格应该怎么选?目前在阿里云的活动中,可选的云服务器类型除了轻量应用服务器之外,云服务器的主要实例规格有经济型e、通用算力型u1和计算型c7与c8y、通用型g7与g8y、内存型r7与r8y等实例,但是对于新手来说,由于是初次购买,实例规格往往不知道怎么选择了。本文为大家展示阿里云目前活动中各云服务器实例规格性能、适用场景以及选择指南参考。