0
点赞
收藏
分享

微信扫一扫

京东云云主机cvm云上网站经典架构搭建:


概述:

本实践演示了云上网站经典架构云上搭建最佳实践,涉及大部分基础云产品。

应用范围:

传统企业/零售/游戏行业单库单服系统上云。

产品介绍:

  • 京东云私有网络(Virtual Private Cloud,简称VPC),是您在京东公有云上自定义的逻辑隔离的网络空间,与您在数据中心搭建的传统网络类似,此私有网络空间由用户完全掌控,支持自定义网段划分、路由策略等。用户可以在VPC内创建和管理多种云产品,如云主机、负载均衡等,同时可配置网络内的资源连接Internet。另外,您可以通过VPN\专线接入,打通您的IDC内网和京东云网络,实现应用的混合云部署,以及将应用平滑地迁移至云上
  • 负载均衡(LB, Load Balancer)提供安全稳定、管理便捷的流量分发服务。访问流量经由 LB 可自动分发至多台服务器上,提高系统的可用性并扩展服务能力,消除单点故障。LB 可智能调整资源分配,提升利用率,轻松应对高并发的流量访问,满足大流量、复杂业务需求
  • 云主机(CVM,Cloud Virtual Machine)是一种管理便捷、安全稳定的弹性计算服务。您可实时、快速地创建多台云主机,并可根据业务需要随时扩展或缩减计算资源,按需付费,节约成本,帮助您更高效可靠的开展业务。
  • 云数据库 RDS 是京东云基于全球广受欢迎的 MySQL, Percona, MariaDB, SQL Server, PostgreSQL 数据库提供的稳定可靠的云数据库服务。相比传统数据库,云数据库 RDS 易于部署、管理和扩展,默认支持主从热备架构,提供数据备份、故障恢复、监控等全套解决方案,彻底解决数据库运维的烦恼。同时,京东云数据库 RDS 通过使用网络隔离、使用白名单限制外网访问等方式,为数据库服务提供了高级别的安全性需求。
  • 数据传输 DTS (Data Transmission Service),是京东云提供的实时数据流服务,可帮助您在业务不停服的前提下轻松完成数据库迁移上云,支持数据迁移、数据订阅、数据同步,可简单方便的满足数据上云、业务异步解耦、跨地域数据灾备等业务场景。
  • 对象存储(OSS,Object Storage Service)是京东云自研的存储海量数据的分布式存储服务,提供高可靠、低成本、强安全的云端数据存储。您可存储音视频、图文等非结构化的海量数据,无容量限制,无格式限制,管理高效便捷,存储成本智能优化,解决您在 CDN 内容分发、大数据、容灾备份等多种场景的数据存储问题。

应用场景:

概述:在创业型公司或阿米巴模式经营的公司,新项目发布初期存在较大的不确定性,既要考虑项目未来的扩展性,又要衡量项目的运营成本。本解决方案为客户提供低成本,敏捷快捷的最佳实践。

典型行业:传统企业、游戏和零售等行业。
适配场景:

  1. 系统可以按地域等规则拆解成一个个独立小系统单元化部署;
  2. 公司以项目为核心组建团队,项目核心系统的主要运维工作由开发兼任;
  3. 成本优先,数据打通、数据安全、容灾等需求滞后考虑(能接受数据丢失、系统部
    分不可用等情况)

技术架构

京东云云主机cvm云上网站经典架构搭建:_架构

方案优势:

系统分级:核心系统通过多产品组合 LB+CVM+RDS 保障服务稳定可靠,分散业务节点在两个 AZ 实现跨区域容灾;业务节点单元化部署。

灵活:子系统可单元化形式把部分应用和数据库集中部署在一台 CVM 上,节省成本,各节点之间互不干扰,灵活增减业务节点。

静态内容通过 CDN 加速,CDN 通过私有 Bucket 回源,有效防止资源盗链。

前置条件:

  • 注册京东云云账号,并完成实名认证。您可以登录京东云控制台,
    并前往实名认证页面查看是否完成实名认证。
  • 购买按量付费资源,京东云账户余额需要大于 100 元。您可以登录京东云控制台,
    前往账户总览页面查看账户余额。
  • 已 申 请 域 名 且 已 经 完 成 域 名 备 案 ( 申 请 ******.cn 域名, **.cn www..cn两个域名备案备用)。
  • 开通 CVM、OSS、CDN、云解析 DNS 等服务。
  • 本方案实践的资源规划仅作为实践演示,实际业务场景资源以用户实际需求为准。
  • 付费方式:为了便于演示默认按量付费。

资源规划:

网络资源规划:

资源类别

配置项

配置明细

区域

区域:

华北-北京

私有网络VPC

VPC名字:

网段:

x_vpc

10.0.0.0/16

EIP

EIP 名称:

支付方式:

公网带宽:

带宽:

EIP

后付费

按流量

1Mbps

SLB

SLB 名:

支付方式:

可用区:

测试slb

后付费

华北-北京

弹性计算资源规划:

资源类别

配置项

配置明细

CVM(核心业

务系统,2 台)

可用区:

CVM 名:

支付方式:

实例规格:

镜像版本:

华北-北京(可用区A)

VM-01 VM-02

按量付费

g.n3.medium(1核4GB 通用 标准型) 通用型SSD云盘 (40GB)

CentOS 7.6 64位

CVM(区域服务器)

可用区:

CVM 名:

支付方式:

实例规格:

镜像版本:

私有镜像名称:

华北-北京(可用区B)

VM-04

g.n3.medium(1核4GB 通用 标准型) 通用型SSD云盘 (40GB)

CentOS 7.6 64位

phpMyAdmin

OSS (对象存储)

Bucket 名:

存储类型:

访问策略:

配置类:

oss-x.s3.cn-north-1.jdcloud-oss.com

标椎存储

公有读私有写

上传对象:/aa.webp

RDS(核心业

务系统)

实例名:

支付方式:

类型:

版本:

分类:

主节点可用:

备节点可用:

部署方案:

数据库账号:

端口:


mysql_x

按配置

主备

mysql5.7

可用区A

可用区B

多可用区部署

rds_admin

3306

CDN

加速域名:

业务类型:

加速区域:

源站信息:

www.***.cn

图片小文件

中国内地

OSS:oss-x.s3.cn-north-1.jdcloud-oss.com

域名

网 站/应用整体域名:

CDN使用域名:

.cn
www.
********.cn

创建部署资源:

一、创建CVM

创建Linux云主机,方法参考

京东云云主机cvm云上网站经典架构搭建:_php_02

二、配置CVM测试程序监听80端口

1.单击实例VM-01进行远程连接

京东云云主机cvm云上网站经典架构搭建:_服务器_03

2.通过WebTerminal登录,root权限登陆CentOS

京东云云主机cvm云上网站经典架构搭建:_架构_04

京东云云主机cvm云上网站经典架构搭建:_架构_05

3.执行下列命令,安装启动测试程序监听 80 端口,并创建当前访问服务器 hostname 信息 的 html 文 件

[root@VM-01 ~]# yum -y install httpd

京东云云主机cvm云上网站经典架构搭建:_mysql_06

4 .启动 httpd 服务,设置开机启动,并确定 80 端口被占用

[root@VM-01 ~]# systemctl start httpd
[root@VM-01 ~]# systemctl enable httpd
[root@VM-01 ~]# ss -tnl|grep 80

京东云云主机cvm云上网站经典架构搭建:_mysql_07

5 .创建当前访问服务器 hostname 信息的 html 文件,并验证文件写入正常

[root@VM-01 ~]# cat <<EOF > /var/www/html/local.html
> <html>
> hostname:`hostname`
> </html>
> EOF

[root@VM-01 ~]# cat /var/www/html/local.html
<html>
hostname:VM-01
</html>

6.重复步骤1-5 部署VM-02

三、创建LB实例,并把两台CVM:VM-01 VM-02加入服务器组

1.创建LB实例,方法参考

京东云云主机cvm云上网站经典架构搭建:_php_08

2.创建监听策略,方法参考

京东云云主机cvm云上网站经典架构搭建:_京东云_09

3.创建虚拟服务组,方法参考

京东云云主机cvm云上网站经典架构搭建:_php_10

4.创建转发后端服务,把虚拟服务器加入后端服务,方法参考

京东云云主机cvm云上网站经典架构搭建:_php_11

6.在负载均衡管理界面,复制LB的公网ip

京东云云主机cvm云上网站经典架构搭建:_mysql_12

7.在浏览器直接访问ip,出现一下界面,表示访问正常

京东云云主机cvm云上网站经典架构搭建:_架构_13

0

8. 输入 http://IP 地址/local.html,查看响应本次请求的后端服务器(本例是 VM-01)

由于会话保持机制,几次刷新都应该是同一后端服务器响应.

京东云云主机cvm云上网站经典架构搭建:_服务器_14

9.查看LB后端服务运行状态,注意由于健康检查规则限制实例健康状态显示会有延迟,健康状态异常参考

京东云云主机cvm云上网站经典架构搭建:_mysql_15

京东云云主机cvm云上网站经典架构搭建:_服务器_16

10.停止当前页面访问的服务器的 80 端口服务(本例为 VM-01,实际以测试情况为准),验证LB状态(验证结束后恢复启动 httpd 服务)

#停止httpd服务

[root@VM-01 ~]# systemctl stop httpd
[root@VM-01 ~]# ss -tnl |grep 80

京东云云主机cvm云上网站经典架构搭建:_京东云_17

京东云云主机cvm云上网站经典架构搭建:_php_18

#刷新页面发现服务正常,但是负载服务器已漂移为 VM-02:

京东云云主机cvm云上网站经典架构搭建:_服务器_19

#恢复httpd服务

[root@VM-01 ~]# systemctl restart httpd
[root@VM-01 ~]# ss -tnl |grep 80

京东云云主机cvm云上网站经典架构搭建:_mysql_20

四、创建配置云上 RDS 环境

1.创建数据库

京东云云主机cvm云上网站经典架构搭建:_php_21

2.创建用户

配置项

说明

数据库账号

rds_admin

账号类型

普通账号

密码

Rds1234

京东云云主机cvm云上网站经典架构搭建:_mysql_22

京东云云主机cvm云上网站经典架构搭建:_mysql_23

3.创建库,在创建数据库页面,参考下表,配置相关参数,并单击创建

配置项

说明

数据库(DB)名称 appdb

rds

支持字符集

utf8mb4

京东云云主机cvm云上网站经典架构搭建:_php_24

4 .验证数据库(CVM内网测试访问RDS)

#记录内网地址及端口号

京东云云主机cvm云上网站经典架构搭建:_架构_25

#使用WebTerminal登陆

京东云云主机cvm云上网站经典架构搭建:_京东云_26

#上传rpm包(可自行去mysql官网下载)

京东云云主机cvm云上网站经典架构搭建:_mysql_27

#yum安装mysql

yum -y install mysql-community-*

#mysql 登陆验证

命令格式:mysql -h域名 -P端口 -u用户名-p密码 。
域名:要访问的云数据库的域名,域名展示在云数据库的详情页面。
端口:链接端口号默认为3306,其中PostgreSQL默认端口是5432。
用户名:在创建数据库时的用户名。
密码:用户名对应的密码。

京东云云主机cvm云上网站经典架构搭建:_架构_28

五、配置云上OSS和CDN环境

1.设置LB域名解析

#查看LB公网ip

京东云云主机cvm云上网站经典架构搭建:_架构_29

#设置域名解析,通过京东云控制台登陆控制台.

#点击目标域名后面的解析

#说明:本步骤前提为已申请域名且已通过备案,本例已申请并备案域名备用。

京东云云主机cvm云上网站经典架构搭建:_mysql_30

#添加解析

京东云云主机cvm云上网站经典架构搭建:_服务器_31

京东云云主机cvm云上网站经典架构搭建:_mysql_32

#访问域名,验证解析成功

京东云云主机cvm云上网站经典架构搭建:_京东云_33

2.部署OSS环境上传测试图片

#新建一个oss空间

京东云云主机cvm云上网站经典架构搭建:_php_34

#上传文件

京东云云主机cvm云上网站经典架构搭建:_京东云_35

京东云云主机cvm云上网站经典架构搭建:_php_36

京东云云主机cvm云上网站经典架构搭建:_php_37

六、开启CDN加速

1.通过https://cdn-console.jdcloud.com/domain/list?curTab=list登陆CDN控制台

#添加域名选择OSS回源.https://docs.jdcloud.com/cn/cdn/getting-started

京东云云主机cvm云上网站经典架构搭建:_架构_38

2.在云解析 DNS中添加cname记录

京东云云主机cvm云上网站经典架构搭建:_mysql_39

配置项

说明

记录类型

CNAME-将域名指向另外一个域名

主机记录

在 CDN 控制台添加域时用到的加速域名的前缀(CDN

加速域名以 www.keepcloud.cn为例,那这里的主机记

录即为 www)

记录值

在 CDN 控制台添加域名后得到的 CNAME 地址

京东云云主机cvm云上网站经典架构搭建:_mysql_40

3.验证cname配置生效

京东云云主机cvm云上网站经典架构搭建:_京东云_41

4.测试 OSS 对象通过 CDN 能被正常访问

#在浏览器输入CDN加速的域名加OSS图片路径

京东云云主机cvm云上网站经典架构搭建:_服务器_42

京东云云主机cvm云上网站经典架构搭建:_京东云_43

七、测试CDN加速效果

#在 VM-01 和 VM-02 服务器的/var/www/html/路径下创建 html 文件:test.html,通过 OSS 文件aa.webp 的临时 url 和 CDN 分别访问几次,查看对象载入速度。

1.登陆OSS控制台获取外链

京东云云主机cvm云上网站经典架构搭建:_mysql_44

2.登陆云主机控制台远程连接VM-01

vim /var/www/html/test.html
 
 <html>
<img src="https://oss-x.s3.cn-north-1.jdcloud-oss.com/aa.webp" />
<img src="http://www.*****.cn/aa.webp" alt="CDN" />
</html>

京东云云主机cvm云上网站经典架构搭建:_服务器_45

3.重复步骤在VM-02中创建html文件
4.为了避免缓存影响,通过 chrome 流量器无痕模式并且打开调试(F12 快捷键开启)模式关闭缓存访问 http://******.cn/test.html,查看两个图片对象的载入时间

#第一次测试 CDN 需要回源取文件,两种方式耗时接近

京东云云主机cvm云上网站经典架构搭建:_mysql_46

#多次刷新网页后 CDN 方式耗时减少,实际使用中随着访问人数的增加,优势会更加明显

京东云云主机cvm云上网站经典架构搭建:_京东云_47

八、部署区域服务器

1.在CVM区服上部署应用和数据库

#通过VNC登陆连接

京东云云主机cvm云上网站经典架构搭建:_服务器_48

2.安装配置 MySQL5.6。
(1).创建安装目录

mkdir -p /opt/db
cd /opt/db/

(2).安装 MySQL 5.6

#下载资源包
[root@VM-03 pma]# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
#安装资源包
[root@VM-03 pma]# rpm -ivh mysql-community-release-el6-5.noarch.rpm

Preparing...                          ################################# [100%]
	package mysql-community-release-el6-5.noarch is already installed


#查看yum源能否看到mysql源
[root@VM-03 pma]# yum repolist all | grep mysql

!mysql-connectors-community/x86_64 MySQL Connectors Community    enabled:    178
mysql-connectors-community-source  MySQL Connectors Community -  disabled
!mysql-tools-community/x86_64      MySQL Tools Community         enabled:     83
mysql-tools-community-source       MySQL Tools Community - Sourc disabled
mysql55-community/x86_64           MySQL 5.5 Community Server    disabled
mysql55-community-source           MySQL 5.5 Community Server -  disabled
!mysql56-community/x86_64          MySQL 5.6 Community Server    enabled:    644
mysql56-community-source           MySQL 5.6 Community Server -  disabled
mysql57-community-dmr/x86_64       MySQL 5.7 Community Server De disabled
mysql57-community-dmr-source       MySQL 5.7 Community Server De disabled

#yum安装mysql
[root@VM-03 pma]# yum install mysql-community-server -y

京东云云主机cvm云上网站经典架构搭建:_架构_49

(3).启动并初始化mysql

#启动mysql
[root@VM-03 pma]# service mysqld start

[root@VM-03 pma]# Starting mysqld (via systemctl):                           [  OK  ]

#初始化mysql
[root@VM-03 pma]# mysql_secure_installation

京东云云主机cvm云上网站经典架构搭建:_mysql_50

京东云云主机cvm云上网站经典架构搭建:_京东云_51

(4).root登陆本地mysql数据库

[root@VM-03 pma]# mysql -uroot -p

京东云云主机cvm云上网站经典架构搭建:_mysql_52

3.安装配置 phpMyAdmin
1.创建安装目录

[root@VM-03 pma]# mkdir -p /opt/pma
[root@VM-03 pma]# cd /opt/pma/

京东云云主机cvm云上网站经典架构搭建:_mysql_53

2.下载安装包

[root@VM-03 pma]# wget --no-check-certificate https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip

京东云云主机cvm云上网站经典架构搭建:_php_54

3.安装依赖包

[root@VM-03 pma]# yum install -y httpd php-mysql php

京东云云主机cvm云上网站经典架构搭建:_服务器_55

4.删除老程序包

[root@VM-03 pma]# yum list installed | grep php 
php.x86_64                     5.4.16-48.el7                  @base             
php-cli.x86_64                 5.4.16-48.el7                  @base             
php-common.x86_64              5.4.16-48.el7                  @base             
php-mysql.x86_64               5.4.16-48.el7                  @base             
php-pdo.x86_64                 5.4.16-48.el7                  @base 

#删除老安装包
[root@VM-03 pma]# yum remove -y php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64  php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64

Loaded plugins: fastestmirror
No Match for argument: php-gd.x86_64
No Match for argument: php-
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.4.16-48.el7 will be erased
---> Package php-cli.x86_64 0:5.4.16-48.el7 will be erased
.........

5.安装RPM包

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install -y php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

京东云云主机cvm云上网站经典架构搭建:_mysql_56

6.安装 phpMyadmin

#安装解压软件(已安装跳过)
[root@VM-03 pma]# yum -y install unzip
#解压zip文件
[root@VM-03 pma]# unzip phpMyAdmin-4.8.5-all-languages.zip
#复制到指定目录
[root@VM-03 pma]# cp -a phpMyAdmin-4.8.5-all-languages /var/www/html/pma
#生成配置文件
[root@VM-03 pma]# cd /var/www/html/pma
[root@VM-03 pma]# cp config.sample.inc.php config.inc.php
#生成随机字符串备用
[root@VM-03 pma]# tr -d 'a-z0-9A-Z'</dev/urandom |head -30 |md5sum
8e4af9572c8036887cc4b350fc877568  -
#编辑配置文件,添加字符转
[root@VM-03 pma]# vim config.inc.php

京东云云主机cvm云上网站经典架构搭建:_php_57

#启动http服务
[root@VM-03 pma]# systemctl start httpd
#查看80端口监听
[root@VM-03 pma]# ss -tnl |grep 80
LISTEN     0      80          :::3306                    :::*                  
LISTEN     0      128         :::80                      :::*

7.验证数据库管理功能

#登陆控制台记住VM-03公网ip

京东云云主机cvm云上网站经典架构搭建:_京东云_58

#打开浏览器输入 ip/pma(访问失败在控制台检查下服务对应端口开没开)

京东云云主机cvm云上网站经典架构搭建:_架构_59

京东云云主机cvm云上网站经典架构搭建:_服务器_60

京东云云主机cvm云上网站经典架构搭建:_php_61

8.制作程序镜像,开新区服

#登陆控制台,找到刚才的云主机

京东云云主机cvm云上网站经典架构搭建:_php_62

京东云云主机cvm云上网站经典架构搭建:_京东云_63

#等待镜像创建完成(过程较慢,需等待一段时间)

京东云云主机cvm云上网站经典架构搭建:_php_64

#开新服务器

京东云云主机cvm云上网站经典架构搭建:_mysql_65

#选择创建的镜像,依次创建

京东云云主机cvm云上网站经典架构搭建:_mysql_66

京东云云主机cvm云上网站经典架构搭建:_mysql_67

#在确认订单页面,确认各项参数信息。确认无误,阅读、同意并确认开通

京东云云主机cvm云上网站经典架构搭建:_mysql_68

#进入控制台,点击远程连接

京东云云主机cvm云上网站经典架构搭建:_服务器_69

#启动 MySQL 和 httpd 服务验证服务正常启动

京东云云主机cvm云上网站经典架构搭建:_架构_70

#记录公网ip,浏览器访问

京东云云主机cvm云上网站经典架构搭建:_京东云_71

举报

相关推荐

0 条评论