
钉钉的技术架构 ECS云服务器,是阿里云提供的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。 OSS是以文件的形式存储数据。 用户可以通过简单的REST接口,在任何时间、任何地点上传和下载数据,基于OSS,用户可以搭建出各种多媒体分享网站、网盘、个人企业数据备份等基于大规模数据(文件)进行存储的服务。 OTS以数据表的形式组织数据,保证强一致性,并提供视图和分页的功能来加速查询。用户可以通过RESTful API来使用服务,也可使用WEB 页面对数据进行管理。 RDS是关系型数据库服务(Relational Database Service)的简称,是一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务。 云计算带来的价值 对开发者来说,不需要去考虑重新购买的硬件的成本和安全细节,只需要专注去做好产品。由阿里云的ECS来保障安全性与稳定性。
安装MongoDB MongoDB是一个基于分布式文件存储的高性能数据库,介于关系数据库和非关系数据库之间,它支持的数据结构非常松散是类似于json和bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 Leanote云笔记使用MongoDB作为后端数据库,按照以下步骤按照MongoDB数据库。 执行以下命令,安装MongoDB。 yum -y install mongodb mongodb-server.x86_64 mariadb-devel.i686 执行以下命令,启动MongoDB服务。 systemctl start mongod 执行以下命令,查看MongoDB运行状态。 systemctl status mongod 安装Leanote 下载Leanote二进制安装包。 wget https://nchc.dl.sourceforge.net/project/leanote-bin/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz 解压安装包。 tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz 编辑文件leanote/conf/app.conf,在文件中找到app.secret项,将该项的值改为任意字符串。(如不修改将会有安全风险)。 说明: 根据Leanote官方文档,如不修改app.secret项的值,将会有安全隐患。 a. 使用vim编辑器打开文件leanote/conf/app.conf。 vim leanote/conf/app.conf b. 进入vim编辑器后,输入:/app.secret=并按下回车查找app.secret位置。 c. 找到该项位置后按下i键进入编辑模式,修改该项的值为任意字符串。 d. 修改完成后,按下esc键退出编辑模式,输入:wq保存并退出vim编辑器。 修改后如图所示。 4. 初始化数据库。 mongorestore -h localhost -d leanote --dir /root/leanote/mongodb_backup/leanote_install_data/ 5. 启动服务。 nohup bash /root/leanote/bin/run.sh > /root/leanote/run.log 2>&1 & 6. 访问云笔记。 在浏览器中访问http://<ECS公网地址>:9000,请将<ECS公网地址>替换为左侧资源栏中的ECS公网IP地址。默认管理用户为admin,密码为abc123。
SLB负载均衡实践 场景体验目标 拥有大量用户的企业,经常会面临如下的难题:在高并发的情况下,经常会导致服务器响应速度慢,严重的情况会直接导致服务器停止服务。此时,会导致企业的业务中断,影响客户的正常访问。 本场景通过使用阿里云负载均衡SLB以及对负载均衡SLB后端服务器ECS的权重进行修改,可以快速解决上述的问题。 背景知识 简介 负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。 负载均衡通过设置虚拟服务地址,将添加的ECS实例虚拟成一个高性能、高可用的应用服务池,并根据转发规则,将来自客户端的请求分发给云服务器池中的ECS实例。 负载均衡默认检查云服务器池中ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用服务的防护能力。 架构 负载均衡服务主要有三个核心概念: 负载均衡实例 (Server Load Balancer instances) 一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例。 监听 (Listeners) 监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。 后端服务器(Backend Servers) 一组接收前端请求的ECS实例。您可以单独添加ECS实例到服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。 特点 1)负载均衡服务通过设置虚拟服务地址(IP),将位于同一地域(Region)的多台云服务器(Elastic Compute Service,简称ECS)资源虚拟成一个高性能、高可用的应用服务池;根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中。 2)负载均衡服务会检查云服务器池中ECS的健康状态,自动隔离异常状态的ECS,从而解决了单台ECS的单点问题,同时提高了应用的整体服务能力。在标准的负载均衡功能之外,负载均衡服务还具备TCP与HTTP抗DDoS攻击的特性,增强了应用服务器的防护能力。 3)负载均衡服务是ECS面向多机方案的一个配套服务,需要同ECS结合使用。 产品优势 高可用 采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾,可用性高达99.95%。 根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。 可扩展 您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。 低成本 与传统硬件负载均衡系统高投入相比,成本可下降60%。 安全 结合云盾,可提供5Gbps的防DDOS攻击能力。 负载均衡配置 本小节的主要内容:将两台服务器挂载到负载均衡的后端,这样,用户只需访问一个IP地址或域名,负载均衡服务器将会根据权重自动转发用户请求到相应的后端服务器上。 通过如下步骤,查看阿里云负载均衡控制台: 1)点击左侧导航栏处的 云产品资源 查看资源信息,点击 一键复制url,用浏览器隐身窗口(或无痕模式)登录控制台, 2)输入实验提供的 子用户名称 和 子用户密码 ,完成后点击 登录 。登录阿里云管理控制台。 3)点击左侧导航栏的 产品与服务 ,下拉菜单中,在 弹性计算 条目下选择 负载均衡 。 点击左侧的 实例管理 ,然后打开实验提供的实例,在实例列表页面,点击目标实例右侧的 点我开始配置 。 通过负载均衡业务配置向导,配置负载均衡的 监听端口、后端服务器 和 健康检查 : 1)在 协议&监听 页面,输入如下信息,完成后,点击 下一步 。 负载均衡协议:选择 HTTP 监听端口:设为 80 高级配置保持默认 2)在 后端服务器 页面,监听请求转发至 默认服务器组,在已添加服务器处点击 继续添加 。 3)在弹出的待添加服务器页面,在预先配置好的两台云服务器前打勾选择,然后点击下一步,之后再点击 添加; 4)在后端服务器界面的已添加服务器列表中,可以看到新增的两台云服务器,分别将 端口 设置为 80,并点击 下一步 。 说明:负载均衡器将会按照输入的权重比例分发请求。 5)在 健康检查 配置中,开启健康检查按钮为绿色 开启状态,点击 下一步。 6)在 配置审核 页面,确认上述配置操作正确,点击 提交 ;出现如下界面,提示配置成功后,点击 知道了 ; 7)此时,页面将显示一个状态为 运行中 的负载均衡监听实例,后端服务器组已添加完成两台ECS服务器,且 健康检查 的状态为 正常。 注意:通常等待1分钟左右健康检查状态变为正常,可点击右侧的 刷新 查看。 负载均衡验证 本小节主要内容如下: 验证负载均衡的工作原理; 验证通过配置不同后端服务器权重,将用户的请求按比例分发到不同后端服务器; 验证在一台后端服务器开启会话请求时,请求在会话开启的时间内只会分发到这一台服务器。 此时,两台后端服务器的权重比例相同。通过如下步骤,验证负载均衡服务器是轮询访问后端云服务器ECS实例: 1)在控制台点击左侧 实例管理 ,在右侧页面中的红框处看到负载均衡的 服务地址(也就是 云产品资源 提供的 负载均衡 的 IP地址) ; 2)在浏览器中新建页面,并访问 负载均衡 的 服务地址 。界面显示的 后端服务器IP 为 云服务器ECS-1(或 云服务器ECS-2) 的 内网地址 。 说明:界面显示的地址为内网地址,这是因为负载均衡访问后端ECS实例,是通过内网访问的。 3)刷新 浏览页面,显示的 后端服务器IP 将发生变化,变为 云服务器ECS-2(或 云服务器ECS-1)的 内网地址 ; 4)重复刷新操作,观察 后端服务器IP 是在两个云服务器的 内网地址 间轮流更换。 5)如上结果证明:负载均衡会将用户的请求发送到后端不同的服务器进行处理。这样,可以减轻单台服务器的负载压力,从而确保业务的持续性。 通过如下步骤,修改后端服务器权重,验证负载均衡向后端服务器发送请求的比例是按照权重的比例调整的。 1)返回 实例管理 页面,点击该实例的 默认服务器组 ; 2)选中 已添加的服务器 ,列表中,勾选下方的勾选框 ,然后点击 修改权重 ; 3)弹出对话框中,勾选 设置不同的权重 。 4)设置两个实例的 权重 分别为 30 ,90 。 说明:通过如上的权重配置,用户通过负载均衡访问的时候,1/4 的用户请求发送到一台后端服务器中,3/4 的请求发送到另一台后端服务器中。 5)完成如上配置后,点击 确定 ,生效配置信息。 6)返回已添加的服务器的页面,查看到两台 ECS实例 的权重分别为 30 和 90 ,并记录对应的 ECS实例 内网地址。 7)浏览器中,刷新多次负载均衡 服务地址 的页面,并记录页面显示的 后端服务器IP 。可以发现:每 4 次刷新,将有 3 次访问 权重 为 90 的 ECS实例,1 次访问权重为 30 的 ECS实例。 8)如上结果证明:用户可以根据实际情况调整负载均衡器的请求分发,一般将配置高的服务器设置的权重调高,配置较低的服务器设置的权重调低。这样可以避免在高并发时,配置较低的服务器因为压力较大服务异常的发生。 执行以下步骤,开启负载均衡的 会话保持 功能。 1)点击左侧 监听 ,监听页面点击右侧的 配置 。 2) 配置监听页面的 高级配置 处,点击 修改 ; 3)开启 会话保持 ,超时时间 输入 180 (即 3 分钟);完成后点击 下一步 。 4)下面的 后端服务器、健康检查 和 配置审核 页面都采用默认值 ,依次完成配置。 5)返回到 监听 页面 ,会话保持 状态 已开启 。 再次在浏览器中输入 负载均衡 的 IP地址 ,多次刷新,发现在会话保持的超时时间内请求只会分发到某一台 ECS 上(究竟是哪一台 ECS 没有规定),时间超出后,重新按照权重比例分发。 我们关闭开启 会话保持 的那台ECS 。默认服务器组页面,已添加的服务器中 ,点击目标ECS的的高亮部分(即 云服务器ID)。 6. 实例详情页面 ,点击右上角处的 【停止】 ,弹窗页面点击【确定 】关闭当前ECS。 等待1分钟左右,实例的状态变为 已停止 。 返回负载均衡管理控制台,在默认服务器组页面中点击右上角的【刷新】,页面刷新后被停止的 ECS 的 状态 变为 已停止。 【监听】 页面,也出现 异常 提示 。 同样的,点击左上角的 【实例管理 】,返回负载均衡管理控制台主页面,异常 报警也会出现。 再次刷新浏览器中 负载均衡 的 IP地址 ,此时,请求发送到 健康检查状态 为 正常 的ECS上。 结果证明,当某一台 ECS 出现异常后,负载均衡会自动将请求发送到健康检查状态正常的 ECS 上。
基于ECS搭建FTP服务 背景知识 本场景主要涉及以下云产品和服务: 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as aService)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。 FTP: FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。默认情况下FTP协议使用TCP端口中的20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。 vsftpd: vsftpd(very secure FTP daemon)是一款在Linux发行版中最受推崇的FTP服务器。它可以运行在诸如 Linux、BSD、Solaris、HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。 远程连接ECS服务器 打开系统自带的终端工具。 Windows:CMD或Powershell。 MAC:Terminal。 Windows用户请检查系统中是否安装有ssh工具。检查方法: 在终端中输入命令ssh -V。 出现如下结果说明已安装。 在终端中输入连接命令 ssh [username]@[ipaddress]。将其中的 username 和 ipaddress 替换为云产品资源提供的ECS服务器的 用户和 弹性IP。 按照页面提示依次往下操作 **, 其中登录密码为资源提供的ECS服务器的登录密码。 登录成功后会显示如下信息。 安装vsftpd 运行以下命令安装vsftpd。 yum install -y vsftpd 运行以下命令设置FTP服务开机自启动。 systemctl enable vsftpd.service 3. 启动FTP服务。 systemctl start vsftpd.service 运行以下命令查看FTP服务监听的端口。 netstat -antup | grep ftp 配置vsftpd vsftpd(very secure FTPdaemon)是一款在Linux发行版中最受推崇的FTP服务器。vsftpd支持匿名访问和本地用户模式两种访问方式。匿名访问方式任何用户都可以访问搭建的FTP服务;本地用户模式只支持添加的本地用户访问搭建的FTP服务。 说明: 匿名用户模式和本地用户模式只可同时配置一种。 匿名用户模式 修改配置文件vsftpd.conf。 vim /etc/vsftpd/vsftpd.conf 按 i 键进入编辑模式,将匿名上传权限 anon_upload_enable=YES 的注释解开。 按ESC键退出编辑模式,输入:wq 保存并退出vim。 更改/var/ftp/pub目录的权限,为FTP用户添加写权限。 chmod o+w /var/ftp/pub/ 重启FTP服务。 systemctl restart vsftpd.service 本地用户模式 为FTP服务创建一个Linux用户。 adduser ftptest 为用户设置密码。 passwd ftptest 创建一个供FTP服务使用的文件目录。 mkdir /var/ftp/test 更改/var/ftp/test目录的拥有者为ftptest。 chown -R ftptest:ftptest /var/ftp/test 修改vsftpd.conf配置文件。 配置FTP为主动模式请执行如下命令: sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器 sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录 sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单 sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录 echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录 配置FTP为被动模式请执行如下命令: sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器 sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录 sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单 sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录 echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录 echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #开启被动模式 echo "pasv_address=<FTP服务器公网IP地址>" >> /etc/vsftpd/vsftpd.conf #本教程中为ECS服务器弹性IP echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最小值 echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最大值 在/etc/vsftpd目录下创建chroot_list文件,并在文件中写入例外用户名单。 #使用vim命令编辑chroot_list文件,添加例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。vim /etc/vsftpd/chroot_list 说明: 没有例外用户时,也必须创建chroot_list文件,内容可为空。 重启FTP服务。 systemctl restart vsftpd.service 客户端测试 FTP客户端、Windows命令行工具或浏览器均可用来测试FTP服务器。(此步骤仅适用于本地用户,匿名模式无需进行测试操作) 说明:使用浏览器访问FTP服务器出错时,建议您清除浏览器缓存后再尝试。 打开Chrom浏览器,在地址栏中输入ftp://:FTP端口,FTP服务器公网IP地址为ECS服务器的弹性IP地址。例如:ftp://139.0.0.1:21。 在弹出的对话框中,输入用户名和密码。
基于ECS快速搭建Docker环境 背景知识 容器技术 容器是一个允许我们在资源隔离的过程中,运行应用程序和其依赖项的 、轻量的 、操作系统级别的虚拟化技术,运行应用程序所需的所有必要组件都打包为单个镜像,这个镜像是可以重复使用的。当镜像运行时,它是运行在独立的环境中,并不会和其他的应用共享主机操作系统的内存、CPU或磁盘。这保证了容器内的进程不会影响到容器外的任何进程。 Docker Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker底层用的Linux的cgroup和namespace这两项技术来实现应用隔离,一个完整的Docker有以下几个部分组成: Docker Client客户端 Docker Daemon守护进程 Docker Image镜像 Docker Container容器 连接ECS服务器 打开终端工具。 Windows:CMD或Powershell。 MAC:Terminal。 Xshell 在终端中输入连接命令ssh [username]@[ipaddress]。您需要将其中的username和ipaddress替换为第1小节中创建的ECS服务器的登录名和公网地址。 安装Docker CE Docker有两个分支版本:Docker CE和Docker EE,即社区版和企业版。这里基于CentOS 7安装Docker CE。 安装Docker的依赖库。 yum install -y yum-utils device-mapper-persistent-data lvm2 显示如下成功: 添加Docker CE的软件源信息。 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装Docker CE。 yum makecache fast yum -y install docker-ce 安装成功后显示如下: 启动Docker服务。 systemctl start docker 配置阿里云镜像仓库(镜像加速) Docker的默认官方远程仓库是hub.docker.com,由于网络原因,下载一个Docker官方镜像可能会需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务ACR提供了官方的镜像站点,从而加速官方镜像的下载。下面介绍如何使用阿里云镜像仓库。 登录容器镜像服务控制台。 在页面左侧资源栏点击 一键复制登录url,打开浏览器隐身窗口(无痕模式)输入已复制的登录链接。 输入资源提供的 子用户名称 和 子用户密码 ,点击 【登录】 ;然后搜索容器镜像,点击【容器镜像服务】登录控制台。 登录成功页面如下。(若弹出开通服务窗口,关闭即可) 单击【镜像中心】 > 【镜像加速器】,可以看到阿里云为您提供了一个专属的镜像加速地址。 配置Docker的自定义镜像仓库地址。请将下面命令中的镜像仓库地址https://ryuxrbht.mirror.aliyuncs.com替换为阿里云为您提供的专属镜像加速地址。 tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://ryuxrbht.mirror.aliyuncs.com"] } EOF 重新加载服务配置文件。 systemctl daemon-reload 重启Docker服务。 systemctl restart docker 使用Docker安装Nginx服务 查看Docker镜像仓库中Nginx的可用版本。 docker search nginx 命令输出如下所示: 拉取最新版的Nginx镜像。 docker pull nginx:latest 查看本地镜像。 docker images 运行容器。 docker run --name nginx-test -p 8080:80 -d nginx 命令参数说明: -name nginx-test:容器名称。 p 8080:80: 端口进行映射,将本地8080端口映射到容器内部的80端口。 d nginx: 设置容器在后台一直运行。 在浏览器地址栏输入http://公网地址>:8080访问Nginx服务。
2020年09月