Dexter

Dexter 查看完整档案

合肥编辑合肥工业大学  |  通信工程 编辑某银行  |  金融科技助理 编辑 www.playerone.top 编辑
编辑

料青山见我应如是

个人动态

Dexter 发布了文章 · 7月31日

【Trainee】07/31 SQL简介及MySQL8.0的安装

SQL

概述

什么是SQL?

  • SQL(Structured Query Language)是一种简洁易用的关系数据库语言
  • 符合ANSI标准的计算机语言
  • Oracle、SQL Server、MySQL、PostgreSQL等都实现了SQL语言
  • Dbase、Access等部分实现了SQL语言
HTML中嵌入SQL语句可以通过WWW访问数据库
在C、Java等可以嵌入SQL语句

SQL能做什么?

  • SQL 面向数据库执行查询、可从数据库取回数据
  • SQL 可在数据库中插入、更新、删除数据
  • SQL 可创建新数据库
  • SQL 可在数据库中创建新表、存储过程和视图
  • SQL 可以设置表、存储过程和视图的权限

SQL的DML与DDL

把SQL分为两个部分:数据操作语言DML(Data Manipulation Language)和数据定义语言DDL(Data Definition Language)。

  • 查询和更新指令构成了SQL 的DML 部分

    • SELECT - 从数据库表中获取数据
    • UPDATE - 更新数据库表中的数据
    • DELETE - 从数据库表中删除数据
    • INSERT INTO - 向数据库表中插入数据

数据定义语言(DDL)可创建或删除表格,也可以定义索引(键)、规定表之间的链接,以及施加表间的约束。

  • SQL中最重要的DDL语句

    • create database(table) - 创建新数据库/表
    • alter database(table) - 修改数据库/表
    • drop database(table) - 删除数据库/表
    • create index - 创建索引(搜索键)
    • drop index - 删除索引

SQL语法不分大小写!

MySQL

简介

MySQL由瑞典T.c.X公司开发,最早开始于1979年。

  • MySQL是一个客户机/服务器结构的实现

    • 需要一个服务器守护程序mysqld和客户程序
  • MySQL特点

    • 支持多用户、多线程,能在多平台使用
    • 源码开放
    • 执行性能高,运行速度快,容易使用
    • 为用户提供了一个相对简单的解决方案

安装

下载资源

进入官网下载页面,选择自己系统、需要的MySQL版本和安装方法(应用程序安装或zip包):
image.png
出于个人习惯,选择zip包的方法。

将zip解压到自己想要的位置即可。
image.png

配置环境变量

右键此电脑 ➡ 属性 ➡ 高级系统设置 ➡ 环境变量:
image.png
编辑系统变量中的Path变量,新建:

MySQL的bin文件夹路径,比如我的:D:\Developer\MySQL\mysql-8.0.21-winx64\bin
image.png

安装

以管理员身份运行cmd窗口:
image.png

进入MySQL的bin目录:
image.png

安装MySQL:

输入mysqld -install
image.png
by the way,移除MySQL服务的命令是:mysqld -remove

初始化:

输入mysqld --initialize
image.png

初始化之后在MySQL的目录下会生成一个data文件夹,里面有一个计算机名.err文件,其中可以查看初始密码,这一步后面会用到。
image.png

配置MySQL的启动文件

在MySQL中新建一个my.ini文件,编辑:
image.png
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\\Developer\\MySQL\\mysql-8.0.21-winx64
# 注意这里是自己的安装路径,用\\而非\
datadir=D:\\Developer\\MySQL\\mysql-8.0.21-winx64\\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

启动MySQL:

以管理员身份运行cmd窗口,在安装路径的bin目录下(配置环境变量之后不在该目录下也可以)输入net start mysql
image.png
by the way,停止MySQL的命令是net stop mysql

另一个方法:右键单击"此电脑" ➡ 管理 ➡ 服务和应用程序 ➡ 服务,找到MySQL,右键启动/停止。
image.png

至此,MySQL基本安装完成,后面需要进行登录时的操作。

登录

通过命令mysql -u root -p启动MySQL
image.png

拓展:实际上完整登录命令为:mysql 【-h 主机名 -P 端口号】 -u 用户名 -p,当连接本机时【】内当然可以省略。

可以看到,在登录时要求输入密码,这个密码从哪来?

在初始化步骤中提到,在MySQL的目录下data文件夹有一个计算机名.err文件,其中可以查看修改初始密码。
image.png

修改密码
登录之后,使用MySQL命令:ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
image.png

重新登陆MySQL:
image.png

退出MySQL的方法:exitCtrl + c

enjoy

查看原文

赞 0 收藏 0 评论 0

Dexter 发布了文章 · 7月30日

【Trainee】07/27 第二个任务:在办公机启动一个项目_part2

需求

part2:启动项目、修改某些配置文件。

实习一周多问题汇总

  • 办公机已经安装过两个Tomcat服务器,加上这次的就会有三个版本的Tomcat,启动时不出所料地error。
  • 如何从零开始通过war包启动一个项目?
  • 第一次启动Spring Boot项目下载时间长的问题。
  • IDEA创建新项目时maven库不是本机指定的目录。

问题处理

多版本Tomcat问题

版本冲突问题:
不设置CATALINA_HOME环境变量,直接编辑startup.bat、shutdown.bat,添加一行:

set CATALINA_HOME=D:\Developer\Tomcat\apache-tomcat-9.0.8(tomcat路径)
image.png
set CATALINA_HOME=D:\Developer\Tomcat\apache-tomcat-7.0.104(tomcat路径)
image.png

此时直接启动startup.bat还会有问题:两个Tomcat端口冲突了。


端口冲突问题:
修改其中一个Tomcat的端口,这里我修改的是Tomcat9.0.8的端口配置:

image.png
image.png
image.png

另一个Tomcat不做任何修改。

启动Tomcat,在浏览器分别访问设定的端口:
image.png

通过war包启动项目

进入Tomcat目录,找到其中的webapps文件夹,将项目的war包以及需要的文件、文件夹之类放入其中,回到Tomcat路径的bin文件夹,双击startup.bat启动项目,war文件会被自动解压。

Tomcat窗口显示started提示之后,浏览器访问localhost:设定的端口号/想要访问的war包名称/需要运行的jsp名称(jsp非必须)。

第一次启动Spring Boot项目下载时间长

因为maven从外网下载,国内访问速度慢,可以更改为阿里云镜像。
找到自己安装路径下的settings.xml文件(比如我的在D:\Developer\Maven\apache-maven-3.6.3\conf中),编辑:
首先在<mirrors></mirrors>节点中添加子节点:

    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
image.png
改为
image.png

然后修改本地仓库地址
<localRepository>自己的repository路径</localRepository>

image.png
改为
image.png

IDEA每次创建新项目时都需要手动指定本机maven库

首先,我是IDEA2020.1版本。
找到File➡New Projects Settings➡Settings for New Projects...
image.png

修改如下选项为自己的Maven库
image.png

查看原文

赞 0 收藏 0 评论 0

Dexter 发布了文章 · 7月29日

【Trainee】07/22 第一个任务:使用jar包captcha实现验证码

虽然老大说这是一个特简单的小项目,但是我这个没有接触过springboot的人觉得难的批爆,最终历时四个小时才做出来。

需求

实现一个小东西,用captcha jar包做一个demo,实现登陆的验证码,用以验证一下captcha的设置问题。

难点

  • 在校期间只是做一些算法方面的问题,没有接触过框架知识。
  • 一直用的是Eclipse,现在要改用IDEA。

Step1:动手

创建Spring Boot项目

创建Spring Boot项目有三种方法,见【尚硅谷Spring Boot】入门5 ~ 8:HelloWorld,使用IDEA,中的Spring Initializr直接创建Spring Boot项目最为方便。

打开IDEA,点击Create New Project ➡ Spring Initializr,如图所示:
image.png
在这里选择好JDK版本。
image.png
这一步要注意Java Version的选择。
按需选择,这里我创建Spring Web项目:
image.png
这一步注意Spring Boot版本的选择。

这里在界面左上角可以搜索并添加需要添加的依赖(Dependencies)如Lombok、Thymeleaf等,当然依赖也可以在生成项目之后在pom.xml文件中手动添加。
image.png

image.png
给项目取个名字吧!
创建成功后这些文件可以删除:
批注 2020-07-29 135724.png
成功:
image.png

导入kaptcha依赖

在pom.xml文件中添加:

<!-- Kaptcha -->
<dependency>
    <groupId>com.github.penggle</groupId>
    <artifactId>kaptcha</artifactId>
    <version>2.3.2</version>
</dependency>

Step2:分析

有两种方式在Spring Boot中使用kaptcha:

  1. 使用.xml的配置方式配置生成kaptcha的bean对象,在启动类上使用@ImportResource引入这个xml文件,在controller中注入其对象并使用;
  2. 把kaptcha作为工程的一个类,加上@Configuration注解,在返回kaptcha的方法中加上@Bean注解,再在controller中注入其对象。

Step3.1:方法1

①创建KaptchaConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha">
        <property name="config">
            <bean class="com.google.code.kaptcha.util.Config">
                <constructor-arg type="java.util.Properties">
                    <props>
                        <!--是否使用边框-->
                        <prop key = "kaptcha.border ">yes</prop>
                        <!--边框颜色-->
                        <prop key="kaptcha.border.color">105,179,90</prop>
                        <!--验证码字体颜色-->
                        <prop key="kaptcha.textproducer.font.color">blue</prop>
                        <!--验证码图片的宽度-->
                        <prop key="kaptcha.image.width">100</prop>
                        <!--验证码图片的高度-->
                        <prop key="kaptcha.image.height">50</prop>
                        <!--验证码字体的大小-->
                        <prop key="kaptcha.textproducer.font.size">27</prop>
                        <!--验证码保存在session的key-->
                        <prop key="kaptcha.session.key">code</prop>
                        <!--验证码输出的字符长度-->
                        <prop key="kaptcha.textproducer.char.length">4</prop>
                        <!--验证码的字体设置-->
                        <prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop>
                        <!--验证码的取值范围-->
                        <prop key="kaptcha.textproducer.char.string">0123456789ABCEFGHIJKLMNOPQRSTUVWXYZ</prop>
                        <!--图片的样式-->
                        <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.WaterRipple</prop>
                        <!--干扰颜色,合法值: r,g,b 或者 white,black,blue.-->
                        <prop key="kaptcha.noise.color">black</prop>
                        <!--干扰实现类-->
                        <prop key="kaptcha.noise.impl">com.google.code.kaptcha.impl.DefaultNoise</prop>
                        <!--背景颜色渐变,开始颜色-->
                        <prop key="kaptcha.background.clear.from">185,56,213</prop>
                        <!--背景颜色渐变,结束颜色-->
                        <prop key="kaptcha.background.clear.to">white</prop>
                        <!--文字间隔-->
                        <prop key="kaptcha.textproducer.char.space">3</prop>
                    </props>
                </constructor-arg>
            </bean>
        </property>
    </bean>
</beans>

②在启动类上引入这个文件

@SpringBootApplication
@ImportResource(locations={"classpath:KaptchaConfig.xml"})

public class CaptchaApplication {
    public static void main(String[] args) {
        // SpringApplication
        SpringApplication.run(CaptchaApplication.class, args);
    }
}

③编写Controller

@RestController
public class KaptchaController {

    // 在Controller中注入defaultKaptcha
    @Autowired
    DefaultKaptcha defaultKaptcha;

    //获取验证码
    @RequestMapping("/getKaptcha")
    public void defaultKaptcha(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        byte[] captchaChallengeAsJpeg = null;
        ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
        try {
            //生产验证码字符串并保存到session中
            String createText = defaultKaptcha.createText();
            httpServletRequest.getSession().setAttribute("verifyCode", createText);
            //使用生产的验证码字符串返回一个BufferedImage对象并转为byte写入到byte数组中
            BufferedImage challenge = defaultKaptcha.createImage(createText);
            ImageIO.write(challenge, "jpg", jpegOutputStream);
        } catch (IllegalArgumentException e) {
            httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
            return;
        }
        //定义response输出类型为image/jpeg类型,使用response输出流输出图片的byte数组
        captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
        httpServletResponse.setHeader("Cache-Control", "no-store");
        httpServletResponse.setHeader("Pragma", "no-cache");
        httpServletResponse.setDateHeader("Expires", 0);
        httpServletResponse.setContentType("image/jpeg");
        ServletOutputStream responseOutputStream =
                httpServletResponse.getOutputStream();
        responseOutputStream.write(captchaChallengeAsJpeg);
        responseOutputStream.flush();
        responseOutputStream.close();
    }
}

image.png

Step3.2:方法2

①创建KaptchaConfig配置类

使用@Component注解使其作为配置类。

@Component
public class KaptchaConfig {

    @Bean("captchaProducer")
    public DefaultKaptcha getDefaultKaptcha(){
        com.google.code.kaptcha.impl.DefaultKaptcha defaultKaptcha = new com.google.code.kaptcha.impl.DefaultKaptcha();
        Properties properties = new Properties();
        // 图片边框
        properties.setProperty("kaptcha.border", "yes");
        // 边框颜色
        properties.setProperty("kaptcha.border.color", "105,179,90");
        // 字体颜色
        properties.setProperty("kaptcha.textproducer.font.color", "blue");
        // 图片宽
        properties.setProperty("kaptcha.image.width", "110");
        // 图片高
        properties.setProperty("kaptcha.image.height", "40");
        // 字体大小
        properties.setProperty("kaptcha.textproducer.font.size", "30");
        // session key
        properties.setProperty("kaptcha.session.key", "code");
        // 验证码长度
        properties.setProperty("kaptcha.textproducer.char.length", "4");
        // 字体
        properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");

        Config config = new Config(properties);
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }
}

②实现获取验证码功能

创建CaptchaController:

  • 注意:KaptchaConfig配置类和KaptchaController控制器一定要在同目录下。
@RestController
public class KaptchaController {

    //这里的captchaProducer要和KaptchaConfig里面的bean命名一样
    @Autowired
    private Producer captchaProducer;

    @RequestMapping("/getCaptcha")
    public void getKaptchaImage(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //用字节数组存储
        byte[] captchaChallengeAsJpeg = null;
        ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
        ServletOutputStream responseOutputStream =
                response.getOutputStream();
        final HttpSession httpSession=request.getSession();
        try {
            //生产验证码字符串并保存到session中
            String createText = captchaProducer.createText();
            //打印随机生成的字母和数字
            System.out.println(createText);
            httpSession.setAttribute(Constants.KAPTCHA_SESSION_KEY, createText);
            //使用生产的验证码字符串返回一个BufferedImage对象并转为byte写入到byte数组中
            BufferedImage challenge = captchaProducer.createImage(createText);
            ImageIO.write(challenge, "jpg", jpegOutputStream);
            captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
            response.setHeader("Cache-Control", "no-store");
            response.setHeader("Pragma", "no-cache");
            response.setDateHeader("Expires", 0);
            response.setContentType("image/jpeg");
            //定义response输出类型为image/jpeg类型,使用response输出流输出图片的byte数组
            responseOutputStream.write(captchaChallengeAsJpeg);
            responseOutputStream.flush();
        } catch (IllegalArgumentException e) {
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
            return;
        }finally {
            responseOutputStream.close();
        }
    }
}

image.png

两种方法的目录的区别

image.png

Captcha配置说明

google captcha是google生成验证码的一个工具类,其原理是将随机生成字符串保存到session中,同时以图片的形式返回给页面,之后前台页面提交到后台进行对比。

kaptcha.border 是否有边框 默认为true 我们可以自己设置yes,no  
kaptcha.border.color 边框颜色 默认为Color.BLACK  
kaptcha.border.thickness 边框粗细度 默认为1 kaptcha.producer.impl 验证码生成器 默认为DefaultKaptcha kaptcha.textproducer.impl 验证码文本生成器 默认为DefaultTextCreator kaptcha.textproducer.char.string 验证码文本字符内容范围 默认为abcde2345678gfynmnpwx  
kaptcha.textproducer.char.length 验证码文本字符长度 默认为5 kaptcha.textproducer.font.names 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize) kaptcha.textproducer.font.size 验证码文本字符大小 默认为40 kaptcha.textproducer.font.color 验证码文本字符颜色 默认为Color.BLACK  
kaptcha.textproducer.char.space 验证码文本字符间距 默认为2 kaptcha.noise.impl 验证码噪点生成对象 默认为DefaultNoise kaptcha.noise.color 验证码噪点颜色 默认为Color.BLACK  
kaptcha.obscurificator.impl 验证码样式引擎 默认为WaterRipple kaptcha.word.impl 验证码文本字符渲染 默认为DefaultWordRenderer kaptcha.background.impl 验证码背景生成器 默认为DefaultBackground kaptcha.background.clear.from 验证码背景颜色渐进 默认为Color.LIGHT_GRAY  
kaptcha.background.clear.to 验证码背景颜色渐进 默认为Color.WHITE  
kaptcha.image.width 验证码图片宽度 默认为200 kaptcha.image.height 验证码图片高度 默认为50

遇到的问题

Spring Boot自动注入出现CONSIDER DEFINING A BEAN OF TYPE 'XXX' IN YOUR CONFIGURATION
正常情况下加上@Component注解的类会自动被Spring扫描到生成Bean注册到spring容器中,既然提示没找到,也就是该注解被没有被spring识别。
Spring在默认情况下只能扫描与控制器在同一个包下以及其子包下的@Component注解,以及能将指定注解的类自动注册为Bean的@Service、@Controller和@Repository。
两种解决办法:

  1. 将接口与对应的实现类放在与application启动类的同一个目录或者他的子目录下,这样注解可以被扫描到,这是最省事的办法
  2. 在指定的application类上加上注解@ComponentScan(basePackages = {"com.example.demo.service.impl", "com.example.dao"}),手动指定application类要扫描哪些包下的注解。

项目的resources文件夹下无法创建class文件
批注 2020-07-29 165755.jpg

注意到resources文件夹右下角的黄标,说明此时文件夹的定义是不对的,按如下操作:
image.png

点击Sources Root之后:
image.png


参考:
https://www.xjyili.cn/3408.html
https://www.cnblogs.com/l024/...
Github:https://github.com/colderThyK...

查看原文

赞 0 收藏 0 评论 0

Dexter 发布了文章 · 6月29日

阿里云【7天实践训练营】进阶路线——Day7:基于ECS和NAS搭建个人网盘

高校计划简介
为响应“新基建,新人才”号召,阿里云推出高校计划,向全国高校学生、教师免费提供2.68亿小时云服务器ECS算力,及“学练赛考”技术成长赋能体系。 陪伴两千多所高校的在校生云上实践、云上成长。点击高校计划立即申请。

在这里插入图片描述
我在阿里云高校计划参加了ECS训练营进阶班,赠送了价值600元的阿里云大数据助理工程师认证(ACA),希望大家感兴趣的话也来报名训练营,让我们一起当校友吧。

场景体验目标

本场景将提供一台配置了CentOS 7.7的ECS实例(云服务器)和创建好的NAS文件存储系统。通过本教程的操作,您可以基于已有的环境快速搭建一个个人网盘。

体验此场景后,可以掌握的知识有:

  1. NAS文件存储系统基本知识
  2. Apache + PHP语言环境的安装和部署
  3. 挂载NAS文件存储系统
  4. Linux 系统基础命令

背景知识

本场景主要涉及以下云产品和服务:

云服务器ECS
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。

文件存储NAS
阿里云文件存储(Network Attached Storage,简称 NAS)是面向阿里云 ECS 实例、E-HPC 和容器服务等计算节点的文件存储服务。NAS 提供了简单的可扩展文件存储以供与 ECS 配合使用,多个ECS实例可以同时访问 NAS 文件系统,并且存储容量会随着您添加和删除文件而自动弹性增长和收缩,为在多个实例或服务器上运行的工作负载和应用程序提供通用数据源。

前置知识

  • [x] NAS基本知识
  • [x] Linux 系统的基础命令

实验详情

实验操作已录屏上传到百度网盘:基于ECS和NAS搭建个人网盘,提取码:l1cy。

1. 创建资源

2. 连接ECS服务器

  1. 打开终端工具。

Windows:打开命令窗口。
MAC:打开命令行终端Terminal。

  1. 在终端中输入连接命令ssh [username]@[ipaddress]。您需要将其中的username和ipaddress替换为第1小节中创建的ECS服务器的用户名和弹性IP。例如:ssh root@123.123.123.123

在这里插入图片描述
命令显示结果如下:
在这里插入图片描述

  1. 输入yes。
  2. 同意继续后将会提示输入登录密码。 密码为已创建的云服务的ECS的登录密码。

在这里插入图片描述

这里1 ~ 4步可以直接用PuTTY软件,方便快捷。
登录成功后会显示如下信息。
在这里插入图片描述

3. 安装OwnCloud

OwnCloud是一款开源的云存储软件,基于PHP的自建网盘。基本上是私人使用,没有用户注册功能,但是有用户添加功能,你可以无限制地添加用户,OwnCloud支持多个平台(windows,MAC,Android,IOS,Linux)。

  1. 执行以下命令,添加一个新的软件源。
rpm --import https://download.owncloud.org/download/repositories/10.0/CentOS_7/repodata/repomd.xml.key
wget http://download.owncloud.org/download/repositories/10.0/CentOS_7/ce:10.0.repo -O /etc/yum.repos.d/ce:10.0.repo
  1. 执行以下命令安装OwnCloud-files。
yum install owncloud-files
  1. 执行以下命令查看安装是否成功。
ll /var/www/html

在这里插入图片描述

4. 安装Apache服务

  1. 执行以下命令安装Apache服务。
yum install httpd –y
  1. 执行以下命令启动Apache服务。
systemctl start httpd.service
  1. 打开浏览器输入体验平台创建的ECS的弹性公网IP。如果出现如下图内容表示Apache安装成功。

在这里插入图片描述

  1. 添加OwnCloud配置:

1)执行以下命令打开Apache配置文件。

vim /etc/httpd/conf/httpd.conf

2)按i键进入文件编辑模式,然后在<Directory>内容后添加以下内容。

# owncloud config
Alias /owncloud "/var/www/html/owncloud/"
<Directory /var/www/html/owncloud/>
    Options +FollowSymlinks
    AllowOverride All
    <IfModule mod_dav.c>
        Dav off
    </IfModule>
    SetEnv HOME /var/www/html/owncloud
    SetEnv HTTP_HOME /var/www/html/owncloud
</Directory>

在这里插入图片描述
3)按esc键退出编辑模式,然后输入:wq保存并退出配置文件。

5. 安装并配置PHP

由于OwnCloud是基于PHP开发的云存储软件,需要PHP运行环境,请根据以下步骤完成OwnCloud工作环境的配置。

  1. 执行以下命令手动更新rpm源。
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm   
  1. 执行以下命令安装PHP 7.2版本。

说明:OwnCloud只支持PHP 5.6+。

yum -y install php72w
yum -y install php72w-cli php72w-common php72w-devel php72w-mysql php72w-xml php72w-odbc php72w-gd php72w-intl php72w-mbstring
  1. 执行以下命令检测PHP是否安装成功。
php -v
  1. 将PHP配置到Apache中:

1)执行以下命令,找到php.ini文件目录。

find / -name php.ini

2)执行以下命令打开httpd.conf文件。

vi /etc/httpd/conf/httpd.conf

3)按i键进入文件编辑模式,然后在文件最后添加以下内容。

PHPIniDir /etc/php.ini

4)按esc键退出编辑模式,然后输入:wq保存并退出配置文件。
5)执行以下命令,重启Apache服务。

systemctl restart httpd.service

6. 配置OwnCloud

完成上述配置后,您就可以登录OwnCloud创建个人网盘了。

  1. 打开浏览器,输入ECS弹性IP/owncloud,例如1.1.1.1/owncloud
  2. 创建管理员账号和密码,然后单击【存储&数据库】,配置数据库,最后单击【安装完成】。

在这里插入图片描述

  1. 输入已创建的用户名和密码登录Owncloud。

在这里插入图片描述
登录成功界面如下:
在这里插入图片描述

7. 挂载NAS服务

完成OwnCloud初始化之后就可以将NAS存储包挂载到您的网盘服务器上。

  1. 首先在左侧 云产品资源 栏点击一键复制url,在浏览器隐身窗口(无痕模式)中粘贴已复制的url。

在这里插入图片描述

  1. 输入云产品资源提供的子用户名和密码,登录阿里云控制台。在产品列表页,搜索NAS,然后单击【文件存储NAS】。

在这里插入图片描述

  1. 点击左侧【文件系统列表】,选择 资源 提供的 地域 ,可以看到已经创建好的文件系统,然后单击【文件系统 ID】进入文件系统详情页。

在这里插入图片描述

  1. 选择【挂载使用】,然后单击【添加挂载点】选择专有网络,最后单击【确定】。

在这里插入图片描述

  1. 在命令行终端,执行以下命令安装NFS客户端。
yum install nfs-utils
  1. 在控制台,单击【挂载文件系统到ECS】查看挂载命令。

在这里插入图片描述

  1. 在打开的挂载文件系统到ECS页面复制挂载命令。

在这里插入图片描述

  1. 将复制好的挂载命令粘贴到记事本中,然后把命令最后的/mnt替换为:/var/www/html/owncloud/data/<OwnCloud登录名>

例如:

sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 3ad894afd4-uon67.cn-shanghai.nas.aliyuncs.com:/ /var/www/html/owncloud/data/admin
  1. 在命令窗口执行上一步骤的挂载命令。

在这里插入图片描述

  1. 执行以下命令查看挂载是否成功。
df -h | grep aliyun

在这里插入图片描述
注意:NAS挂载成功后,OwnCloud网盘中的默认目录和文件不可读写,请在网盘中新建目录上传。

查看原文

赞 0 收藏 0 评论 0

Dexter 发布了文章 · 6月28日

阿里云【7天实践训练营】进阶路线——Day6:在线编程题目-106.Jerry的考验

高校计划简介
为响应“新基建,新人才”号召,阿里云推出高校计划,向全国高校学生、教师免费提供2.68亿小时云服务器ECS算力,及“学练赛考”技术成长赋能体系。 陪伴两千多所高校的在校生云上实践、云上成长。点击高校计划立即申请。

在这里插入图片描述
我在阿里云高校计划参加了ECS训练营进阶班,赠送了价值600元的阿里云大数据助理工程师认证(ACA),希望大家感兴趣的话也来报名训练营,让我们一起当校友吧。

106.Jerry的考验

问题概述:
有一天Jerry给Tom出了一道题来考验他。
Jerry给了Tom一个长度为2*n的只包含小写字母的字符串,让Tom将这个字符串任意挑选字符,将其分成两个等长的字符串a和b(对于一个字符不能同时被选到a和b中),然后a要和reverse(b)相同(a和反转后的b相同),问这样的方案数有多少?Tom有些为难,所以请你来帮帮他吧。

输入:一个正整数n,一个长度为2*n的字符串。
输出:方案数。

示例
输入:
2
"abba"
输出:
4

解题思路描述

点击查看:笔试算法模拟题精解之“Jerry的考验”
本题的关键在于理解题意:所谓挑选n个字符变成a和b两个字符串,是指在原字符串中抽出n个字符,这些字符的的顺序保持不变,剩下字符的顺序也保持不变,由此组成a和b两个字符串。

例如 "abcdef",挑选第2、3、5个字符,则分成 "bce" 和 "adf" 两个串。

接下来是整理的思路解析:整体框架是dfs,枚举每个字符属于a还是属于b,搜索过程中需要利用a和b的对称性做加速处理,否则会超时

比方说:
xcccddcccxdd

从左往右枚举a字符串的构成,如果令第一个x属于a,根据对称性,倒数第三个字符x一定是属于b;如此推导出末尾的dd一定属于a,中间位置的dd一定属于b,而且是b的头两个字符;然后左边ccc一定a,右边ccc一定是b,由此得出1种方案。令第一个x属于b也可以用同样的方式得到1种方案。

用这个思路直接写代码不太好写,可以通过枚举二进制,固定左半边的选择情况,然后对于每一个case,通过dfs搜索右半边有多少种合法组合,搜索过程中利用对称性进行剪枝。

对于字符全部相同case如"aaaaaaaa",因为过程中无法剪枝,会退化成2^(2*n)。对于这种case,答案就是 C(2n,n) ,预判一下直接返回即可。

分析

初始字符串a1b1b2a2
方案1a1b1b2a2
方案2a1b2b1a2
方案3b1a1a2b2
方案4b2a1a2b1

可以看出,对于字符串abba分成两个等长的字符串a和b,并且a和反转后的b相同,一共有四种方案。

源码:
功能实现但是超时,不献丑了,我是five。
在这里插入图片描述
在这里插入图片描述

查看原文

赞 0 收藏 0 评论 0

Dexter 发布了文章 · 6月27日

阿里云【7天实践训练营】进阶路线——Day5:阿里云云计算助理工程师认证(ACA)课程实验部分

高校计划简介
为响应“新基建,新人才”号召,阿里云推出高校计划,向全国高校学生、教师免费提供2.68亿小时云服务器ECS算力,及“学练赛考”技术成长赋能体系。 陪伴两千多所高校的在校生云上实践、云上成长。点击高校计划立即申请。

在这里插入图片描述
我在阿里云高校计划参加了ECS训练营进阶班,赠送了价值600元的阿里云大数据助理工程师认证(ACA),希望大家感兴趣的话也来报名训练营,让我们一起当校友吧。

课时9:【在线实验】ECS之初体验(Linux)

实验背景

云服务器(Elastic Compute Service, 简称ECS),是一种简单高效,处理能力可以弹性伸缩的计算服务。ECS的相关术语说明如下:

  • 实例(Instance):是一个虚拟的计算环境,由CPU、内存、系统盘和运行的操作系统组成;ECS实例作为云服务器最为核心的概念,其他资源,比如磁盘、IP、镜像、快照等,只有与ECS结合后才具有使用意义。
  • 地域(Region):指ECS实例所在的物理位置。地域内的ECS实例内网是互通的,不同的地域之间ECS实例内网不互通。
  • 可用区(Zone):指在同一地域内,电力和网络互相独立的物理区域。
  • 磁盘(Disk):是为ECS实例提供数据块级别的数据存储。可以分为4类: 普通云盘、SSD云盘、高效云盘和本地SSD磁盘
  • 快照(Snapshot):是某一个时间点上某个磁盘的数据拷贝。
  • 镜像(Image):是ECS实例运行环境的模板,一般包括操作系统和预装的软件。
  • 安全组(Security Group):是一种虚拟防火墙,具备状态检测包过滤功能。每个实例至少属于一个安全组。同一个安全组内的实例之间网络互通,不同安全组的实例之间默认内网不通,但是可以授权两个安全组之间互访。

实验详情

  1. 实验资源
  2. 远程登录ECS服务器
  3. 使用阿里云控制台管理ECS实例
  4. 查看ECS实例磁盘
  5. 重置ECS实例登陆密码
  6. 重启ECS实例

实验具体操作已录屏上传到百度网盘:课时9:【在线实验】ECS之初体验(Linux),提取码:qxd3。

课时10:【在线实验】云服务器的数据备份和恢复

实验背景

阿里云ECS实例云盘
阿里云ECS实例的云盘提供数据块级别的数据存储,采用三副本的分布式机制,为 ECS 实例提供 99.9999999% 的数据可靠性保证。ECS云盘既可以单独使用,又可以组合使用,从而满足不同应用场景的需求。
ECS云盘分为三种:普通云盘,高效云盘和SSD云盘。

  • 普通云盘:采用机械磁盘作为存储介质

    • 产品特点:提供数百的随机读写 IOPS 能力,最大 30 ~ 40 MB/s 的吞吐量;单块普通云盘最大提供 2000 GB 存储空间;可单独挂载到相同可用区内的任意ECS实例上。
    • 使用场景:适合数据不被经常访问,低成本,低 I/O 负载或者有随机读写 I/O 的应用场景。
  • 高效云盘:采用固态硬盘与机械硬盘的混合介质作为存储介质

    • 产品特点:最高提供 3000 随机读写 IOPS、80 MBps 的吞吐性能;单块高效云盘最大提供 32768 GB 存储空间;可单独挂载到相同可用区内的任意ECS实例上。
    • 使用场景:MySQL、SQL Server、PostgreSQL 等中小型关系数据库或对数据可靠性要求高、中度性能要求的中大型开发测试应用。
  • SSD云盘:

    • 产品特点:最高提供 20000 随机读写 IOPS、256 MB/s 的吞吐能力;单块 SSD 云盘最大提供 32768 GB 存储空间;可单独挂载到相同可用区内的任意ECS实例上。
    • 使用场景:PostgreSQL、MySQL、Oracle、SQL Server 等中大型关系数据库应用或对数据可靠性要求高的中大型开发测试环境。
    • 注意事项:只有挂载到 I/O 优化的实例时,才能获得期望的 IOPS 性能。挂载到非 I/O 优化的实例时无法获得期望的 IOPS 性能。

阿里云ECS实例快照
阿里云ECS产品提供快照功能,所谓快照,就是保留某个时间点上的系统数据状态,数据盘的快照用于数据备份,系统盘的快照用于制作镜像。快照使用增量的方式,两个快照之间只有数据变化的部分才会被拷贝。推荐用户在以下业务场景中使用快照:

  • 系统盘、数据盘的日常备份,用户可以利用快照定期的对重要业务数据进行备份,来应对误操作、攻击、病毒等导致的数据丢失风险。
  • 更换操作系统,应用软件升级或业务数据迁移等重大操作前,用户可以创建一份或多份数据快照,一旦升级、迁移过程中出现任何问题,可以通过数据快照及时恢复到正常的系统数据状态。
  • 生产数据的多副本应用,用户可以通过对生产数据创建快照,从而为数据挖掘、报表查询、开发测试等应用提供近实时的真实生产数据。

创建快照时,服务器的状态只能为“运行中”或“已停止”。阿里云ECS实例的快照提供两种模式:

  • 自动快照,用户可以通过创建自动快照策略,自定义快照的创建时间、重复时间和保留时间等参数,阿里云系统将定期为指定的磁盘,自动创建快照。
  • 手动快照,用户根据需求,创建磁盘快照。但是,通过手动创建的快照,不会主动删除,会一直保留。

阿里云ECS实例镜像
镜像是云服务器 ECS 实例运行环境的模板,一般包括操作系统和预装的软件。您可以使用镜像创建新的 ECS 实例和更换 ECS 实例的系统盘。目前,阿里提供四种可供使用的镜像类型:

  • 公共镜像:由阿里云官方提供的,目前支持Windows和Linux等多个发行版本;
  • 镜像市场:通过镜像市场,购买第三方(ISV)提供的镜像;
  • 自定义镜像:使用现有的服务器ECS实例创建的自定义镜像;
  • 共享镜像:选择其他阿里云用户共享的

实验详情

  1. 实验资源
  2. ECS数据盘分区以及挂载
  3. ECS数据盘快照的创建
  4. ECS磁盘回滚

实验操作已录屏上传到百度网盘:课时10:【在线实验】云服务器的数据备份和恢复,提取码: 5rn4。

该实验有课后作业

课时16:【在线实验】云数据库管理初体验

实验背景

RDS 简介
阿里云关系型数据库(Relational Database Service,简称 RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和高性能存储,RDS 支持 MySQL、SQL Server、PostgreSQL 和 PPAS(Postgre Plus Advanced Server,一种高度兼容 Oracle 的数据库)引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。


RDS 实例链接方式
当RDS实例创建成功后,默认提供 内网链接地址 ,用户可以通过 数据传输服务 或 相同地域的ECS实例 连接到RDS实例。若要通过本地服务器 或 不同地域的ECS实例 连接到 RDS实例,用户需 申请外网地址 ,如下图所示:
在这里插入图片描述


RDS 数据库账号
在使用RDS 数据库之前,需要在 RDS 实例中创建账号。同一实例下的数据库共享该实例下的所有资源,其中:

MySQL 版实例和 SQL Server 版实例最多可以创建 500 个账号
PostgreSQL 版实例和 PPAS 版实例没有账号个数限制
RDS for SQL Server 2012 只能创建初始账号

注意事项:

  1. 分配数据库账号权限时,请按最小权限原则和业务角色创建账号,并合理分配只读和读写权限。必要时可以把数据库账号和数据库拆分成更小粒度,使每个数据库账号只能访问其业务之内的数据。如果不需要数据库写入操作,请分配只读权限。
  2. 请设置数据库账号的密码为强密码,并定期更换

创建数据库账号:
在这里插入图片描述
1)数据库账号:由 2~16 个字符的小写字母,数字或下划线组成、开头需为字母,结尾需为字母或数字,如 lab_user 。

2)授权数据库:该账号授权的数据库,选取左边的 未授权数据库 ,单击 授权,添加数据库到 已授权数据库 中。如果尚未创建数据库,该值可以为空。您可以通过 已授权数据库 右上角的权限设置按钮将该账号下的数据库权限批量设置为 全部设读写 或者 全部设只读。

3)密码:该账号对应的密码,由 6~32 个字符的字母、数字、中划线或下划线组成,如 password4example。

  • 确认密码:输入与密码一致的字段,如 password4example,以确保密码正确输入。

4)备注说明:可以备注该账号的相关信息,便于后续账号管理,最多支持 256 个字符(1 个汉字等于 3 个字符)。


RDS 数据库
用户可以通过 RDS 管理控制台 创建数据库。数据库名称实例内唯一,实例间互不影响。同一实例下的数据库共享该实例下的所有资源,其中:

MySQL 版实例最多可以创建 500 个数据库
SQL Server 2008 R2 版实例最多可以创建 50 个数据库
PostgreSQL 版实例和 PPAS 版实例没有数据库个数限制

创建数据库:
在这里插入图片描述
1)数据库(DB)名称:由 2~64 个字符的小写字母、数字、下划线或中划线组成,开头需为字母,结尾需为字母或数字。

2)支持字符集:设置数据库的字符集:utf8、gbk、latin1 和 utf8mb4。

3)授权账号:选择该数据库授权的账号。如果尚未创建账号,该值可以为空。

4)账号类型:选择 授权账号 后可见,设置该数据库授权给 授权账号 的权限,可以设置为 读写 或者 只读 。

5)备注说明:可以备注该数据库的相关信息,便于后续数据库管理,最多支持 256 个字符(1 个汉字等于 3 个字符)。

实验详情

  1. 实验资源
  2. 访问阿里云RDS管理控制
  3. 创建RDS数据库账号
  4. 创建RDS数据库
  5. 登录RDS数据库
  6. 导入测试数据
  7. 查看诊断报告

实验操作已录屏上传到百度网盘:课时16:【在线实验】云数据库管理初体验,提取码:0k22。

课时17:【在线实验】数据库上云迁移的实现

实验详情

  1. 实验资源
  2. 查询源数据库
  3. 建立目标数据库
  4. 数据库迁移
  5. 查阅迁移结果

实验操作已录屏上传到百度网盘:课时17:【在线实验】数据库上云迁移的实现,提取码:mpje。

课时23:【在线实验】云存储OSS使用初体验

实验背景

阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过调用API,在任何应用、任何时间、任何地点上传和下载数据,也可以通过用户Web控制台对数据进行简单的管理。OSS适合存放任意文件类型,适合各种网站、开发企业及开发者使用。

阿里云OSS图片处理服务(Image Service,简称 IMG) ,是阿里云OSS对外提供的海量、安全、低成本、高可靠的图片处理服务。用户将原始图片上传保存在OSS上,通过简单的 RESTful 接口,在任何时间、任何地点、任何互联网设备上对图片进行处理。图片处理服务提供图片处理接口,图片上传请使用OSS上传接口。基于IMG,用户可以搭建出跟图片相关的服务。图片服务处理的图片来自于OSS,所以图片的上传实际是上传到OSS的同名Bucket中。

在真实的工作场景中,一般将图片、音频、视频等存储到OSS服务中,这样可以极大的提高用户的页面访问速度。

实验详情

  1. 实验资源
  2. 查看图片分享网站
  3. 上传图片文件
  4. 使用OSS存储图片分享网站

实验操作已录屏上传到百度网盘:课时23:【在线实验】云存储OSS使用初体验,提取码:7oux。

课时24:【在线实验】使用OSS API上传和下载文件

实验背景

阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。使用 OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种结构化或非结构化数据文件。以下的术语为OSS相关的基本概念:

  • Bucket,是一个用户用来管理所存储Object的存储空间。 每个用户可以拥有多个Bucket。Bucket的名称在OSS的范围内必须是全局唯一的,一旦创建之后无法修改名称。Bucket内部的Object数目是没有限制的。
  • Object,是OSS存储数据的基本单元,称为OSS的对象,也被称为OSS的文件。根据不同的上传方式,Object的大小限制是不一样的。Object由元信息(Object Meta),用户数据(Data)和文件名(Key)组成。Object由一个在Bucket内部唯一的Key来标示。Object操作在OSS上具有原子性,操作要么成功要么失败,不会存在有中间状态的Object。OSS保证用户一旦上传完成之后读到的Object是完整的,OSS不会返回给用户一个只上传成功了部分的Object。分片上传最大支持48.8TB的Object,其他的上传方式最大支持5GB。
  • Region,表示OSS的数据中心所在的区域,物理位置。 一旦指定之后就不允许更改,该Bucket下所有的Object都存储在对应的数据中心。
  • Endpoint,表示OSS对外服务的访问域名。OSS以HTTP REST API的形式对外提供服务,当访问不同的Region的时候,需要不同的域名。

用户可以通过调用API,在任何应用、任何时间、任何地点上传和下载数据,也可以通过阿里云Web控制台对数据进行简单的管理。目前阿里云OSS支持如下几种语言版本的SDK调用API:Python SDK,Java SDK,Android SDK,iOS SDK,JavaScript SDK,.NET SDK,PHP SDK,Ruby SDK,C SDK,Go SDK,Media-C SDK。本实验中主要介绍如何使用Python SDK调用OSS API实现文件的简单上传,下载和删除等操作。

OSS作为对象存储提供商,常用的使用场景如下:
适用于图片、音视频、日志等海量文件的存储,支持各种终端设备,Web网站程序和移动应用直接向OSS写入或读取数据,支持流式写入文件写入两种方式。
在这里插入图片描述
开发者不仅可以直接使用OSS,利用BGP带宽,实现超低延时的数据直接下载;OSS也可以配合阿里云CDN加速服务,为图片、音视频、移动应用更新分发,提供最佳体验等场景。
在这里插入图片描述
上传文件到OSS后,可以配合媒体转码服务(MTS),图片处理服务(IMG)进行云端的数据处理。
在这里插入图片描述

实验详情

  1. 实验资源
  2. 查看OSS环境
  3. 调用OSS API上传小文件
  4. 调用OSS API下载小文件
  5. 调用OSS API删除Object

实验操作已录屏上传到百度网盘:课时24:【在线实验】使用OSS API上传和下载文件,提取码:z2h1。

该实验有课后作业

课时29:【在线实验】负载均衡使用初体验

实验背景

简介
负载均衡(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攻击能力。

阿里云负载均衡基础架构
负载均衡采用集群部署,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。

阿里云当前提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡服务。

四层采用开源软件LVS(Linux Virtual Server)+ keepalived的方式实现负载均衡,并根据云计算需求对其进行了个性化定制。

七层采用Tengine实现负载均衡。Tengine是由淘宝网发起的Web服务器项目,它在Nginx的基础上,针对有大访问量的网站需求,添加了很多高级功能和特性。
在这里插入图片描述
如下图所示,各个地域的四层负载均衡实际上是由多台LVS机器部署成一个LVS集群来运行的。采用集群部署模式极大地保证了异常情况下负载均衡服务的可用性、稳定性与可扩展性。
在这里插入图片描述
LVS集群内的每台LVS都会进行会话,通过组播报文同步到该集群内的其它LVS机器上,从而实现LVS集群内各台机器间的会话同步。如下图所示,当客户端向服务端传输三个数据包后,在LVS1上建立的会话A开始同步到其它LVS机器上。图中实线表示现有的连接,图中虚线表示当LVS1出现故障或进行维护时,这部分流量会走到一台可以正常运行的机器LVS2上。因而负载均衡集群支持热升级,并且在机器故障和集群维护时最大程度对用户透明,不影响用户业务。

实验详情

  1. 实验资源
  2. 分别访问两台云服务器
  3. 部署负载均衡后端服务器
  4. 验证负载均衡工作原理
  5. 验证负载均衡的健康检查

实验操作已录屏上传到百度网盘:课时29:【在线实验】负载均衡使用初体验,提取码:0as8。

课时30:【在线实验】高并发访问时流量分发和会话保持的实现

实验详情

  1. 实验资源
  2. 查看负载均衡后端服务器
  3. 配置负载均衡
  4. 开启会话保持功能

实验操作已录屏上传到百度网盘:课时30:【在线实验】高并发访问时流量分发和会话保持的实现,提取码:o542。

课时37:【在线实验】安骑士初体验

实验背景

越来越多的企业开始使用阿里云的各种服务,比如ECS,RDS,负载均衡等等。随之而来的是用户最关心的安全问题:比如,因为用户使用通用软件的漏洞而被黑客入侵;Web服务器(内部/外部)被黑客入侵窃取网站的核心数据等。

因此,阿里云推出云盾服务。云盾是阿里巴巴集团多年来安全技术研究积累的成果,它结合阿里云云计算平台强大的数据分析能力,为中小网站提供如安全漏洞检测、网页木马检测以及面向云服务器用户提供的主机入侵检测、防DDoS等一站式安全服务。阿里云对于安全方面,可谓“十年攻防,一朝成盾”:
在这里插入图片描述


服务器安全(安骑士)是云盾的一款服务器安全运维管理产品。通过安装在服务器上的轻量级Agent插件与云端防护中心的规则联动,实时感知和防御入侵事件,从而保障服务器的安全。

服务器安全(安骑士)的架构图,如下图:
在这里插入图片描述
阿里云平台默认为用户开通安骑士的基础版,若用户希望可以通过安骑士深度维护云服务器,可以购买专业版增强版企业版。不同版本提供不同的服务。
在这里插入图片描述


安骑士主要提供五大服务:

  • 木马查杀:服务器安全(安骑士)Agent将自动识别服务器的Web目录,对服务器的Web目录进行后门文件扫描,每天凌晨将会对Web目录进行一次扫描,同时若Web目录文件发生变化也会触发单次单文件扫描。
  • 补丁管理:支持通用Web软件漏洞扫描和Windows系统漏洞扫描,当前扫描周期为1天。不仅如此,当前漏洞补丁均为云盾自研补丁,快于官方补丁推出。用户可以通过控制台的一键修复功能,实现漏洞批量修复和回滚。
  • 安全巡检:支持手动巡检周期巡检两种方式。手动巡检主要对服务器常见系统配置缺陷进行检测,包括对可疑系统账户、弱口令、注册表等进行检测。用户也可设置周期检测时间定期对自己的服务器进行安全体检。
  • 主机防火墙:支持TCP,UDP和HTTP三种协议的自定义访问控制;共享云盾恶意IP库,直接将恶意IP进行拦截;支持Web攻击拦截策略自定义;不但可以记录4层和7层策略的命中情况,而且允许近1个月的记录查看和数据导出。
  • 安全运维:支持Shell命令(Linux)、BAT命令(Windows),非交互式命令;支持在服务器安全(安骑士)控制台一键下发脚本命令,支持运行账户切换、权限切换;支持对运行结果在线查看和导出结果查看。

实验详情

  1. 实验资源
  2. 申请黑客服务器
  3. 搭建黑客服务器
  4. 安骑士配置白名单
  5. 安骑士异地登录报警

实验操作已录屏上传到百度网盘:课时37:【在线实验】安骑士初体验,提取码:br00。

课时38:【在线实验】云监控初体验

实验背景

云监控(CloudMonitor)作为云服务的监控管理入口,能让用户快速了解各产品实例的状态和性能。云监控从站点监控、云服务监控、自定义监控三个方面来为用户提供服务。通过云监控管理控制台,用户可以看到当前服务的监控项数据图表,清晰了解服务运行情况。并通过设置报警规则,管理监控项状态,及时获取异常信息。云监控目前免费限量为用户提供监控服务。

云监控为用户提供了非常丰富的使用场景:

  • 云服务监控:用户购买和使用云监控支持的阿里云服务后,可监控多种阿里云云服务的各项基础指标,比如:ECS的CPU使用率、内存使用率、公网流出流速(带宽)等。确保实例的正常使用,避免因为对资源的过度使用造成用户业务无法正常运转。云监控会根据用户设置的报警规则,在监控数据达到报警阈值时,发送报警信息。用户可以及时获取异常通知,并查询服务异常的原因。

    • 目前,云服务监控对用户开放的产品包括云服务器ECS、云数据库RDS、负载均衡、云数据库Memcache版、对象存储OSS、CDN、弹性公网IP、云数据库Redis版、消息服务、日志服务等,其它云产品的监控会陆续加入进来。
  • 站点监控:支持提供多种协议的监控设置,可探测您站点的可用性、响应时间、丢包率。让用户全面了解站点的可用性,并在发生异常时,可以及时处理。

    • 站点监控目前支持8种协议的探测,探测点包括:杭州、青岛、北京,探测频率支持:1分钟、5分钟、15分钟。
  • 自定义监控:补充“云服务监控”的不足,如果云监控服务未能提供您需要的监控项,那么,用户可以创建新的监控项并采集监控数据上报到云监控,云监控会对新的监控项提供“监控图表”展示和“报警”功能。

本实验主要介绍如何使用云服务监控,以及使用“站点监控”对用户自建的网站进行监控。通过设置报警规则,用户可以及时发现站点的异常情况,并做出及时的处理。

实验详情

  1. 实验资源
  2. 监控阿里云云服务
  3. 创建ECS监控报警规则
  4. 使用云监控对站点进行监控
  5. 清理云监控

实验操作已录屏上传到百度网盘:课时38:【在线实验】云监控初体验,提取码:e1z7。

查看原文

赞 0 收藏 0 评论 0

Dexter 发布了文章 · 6月26日

阿里云【7天实践训练营】进阶路线——Day4:阿里云云计算助理工程师认证(ACA)课程5 ~ 6章

高校计划简介
为响应“新基建,新人才”号召,阿里云推出高校计划,向全国高校学生、教师免费提供2.68亿小时云服务器ECS算力,及“学练赛考”技术成长赋能体系。 陪伴两千多所高校的在校生云上实践、云上成长。点击高校计划立即申请。

在这里插入图片描述
我在阿里云高校计划参加了ECS训练营进阶班,赠送了价值600元的阿里云大数据助理工程师认证(ACA),希望大家感兴趣的话也来报名训练营,让我们一起当校友吧。

第5章 :掌握负载均衡SLB

课时25:SLB产品概要

负载均衡SLB

负载均衡(Server Load Balancer,简称SLB)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。

SLB可以做什么?

  1. 负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用的可用性。
  2. 负载均衡通过设置虚拟服务地址(IP),将添加的同一地域(Region)的多台ECS实例虚拟成一个高性能、高可用的后端服务池,并根据转发规则,将来自客户端的请求分发给后端服务器池中的ECS实例。
  3. 负载均衡默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用服务的防护能力。
  4. 在标准的均衡负载功能之外SLB服务还具备TCP和HTTP抗DDoS攻击的特性,增强了应用服务器的防护能力。
  5. SLB服务是ECS面向多极方案的一个配套服务,需要同ECS结合使用。

课时26:SLB简介

组成部分

负载均衡由以下三个部分组成:

  • 负载均衡实例 (Server Load Balancer instances)

    • 一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例。
  • 监听 (Listeners)

    • 监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
  • 后端服务器(Backend Servers)

    • 一组接收前端请求的ECS实例。您可以单独添加ECS实例到后端服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。

在这里插入图片描述

基本概念

简称全称中文说明
SLBServer Load Balancer负载均衡服务阿里云计算提供的一种网络负载均衡服务,结合阿里云提供的ECS服务,提供四层和七层负载均衡服务。
RegionRegion地域代表资源所在并有效的区域,每个地域包含一组数据中心
ZoneZone可用区代表SLB所在的Zone
LoadBalancerLoad Balancer负载均衡实例负载均衡实例是一个运行的负载均衡服务。要使用负载均衡服务,必须先创建一个负载均衡实例。实例是识别用户SLB实例的唯一标识。
ListenerListener负载均衡服务监听负载均衡服务监听规定了如何将请求转发给后端服务器。一个负载均衡实例至少添加一个监听。
BackendServerBackend Server后端服务器处理负载均衡分发的前端请求的ECS实例。
AddressAddress服务地址系统为创建的负载均衡实例分配的服务IP地址。根据创建的负载均衡实例的类型,服务地址可能是公网IP也可能是私网IP。您可以将域名解析到公网IP地址提供对外服务。

主要功能

在这里插入图片描述
在这里插入图片描述

课时27:SLB主要操作

负载均衡开通➡服务监听配置➡后端服务器配置➡负载均衡监控
相关操作在实验中实操。

课时28:SLB相关问题

当前支持的协议?

  • 4层(TCP、UDP)、7层(HTTP、HTTPs);

SLB服务本身解决了后端ECS服务的灾备问题,但如何避免SLB服务本身故障导致的单点问题?关于SLB的灾备,有什么好的建议?

  • SLB实例后端的ECS可以是不同Zone下的机器。从而提高本地可用性。
  • 在同一地域(Region)创建多个SLB实例,通过DNS轮询的方式对外提供服务,从而提高本地可用性
  • 在不同地域(Region)创建多个SLB实例,通过DNS轮询的方式对外提供服务,从而提高跨地域的可用性

SLB最多支持对几台ECS进行负载均衡服务?

  • 我们不会限制用户在SLB实例后配置的ECS数量但是,为了保证您对外服务的稳定与高效,我们建议您可以根据业务分类或应用服务的模块划分来将提供不同服务或执行不同任务的应用服务器配置在不同的SLB实例后。

不同操作系统的ECS可以同时做SLB服务吗?

  • 可以。SLB本身不会限制后端的ECS使用哪种操作系统,只要您的2台ECS中的应用服务部署是相同且保证数据的一致性即可。但是,我们建议您选择2台相同操作系统的ECS进行配置,以便您日后的管理维护。

如何确保SLB后端的多台ECS之间的数据同步呢?

  • 目前,有很多类似的工具可以实现服务器之间的数据同步,比如: rsync。具体使用及选择,还请通过其他途径获得更多的介绍资料及指导信息。
  • 您也可以将您的ECS配置成无状态的应用服务器,而数据和文件统一存放在RDSOSS服务上。

我有2台ECS,分别创建在杭州和青岛,为什么无法把他们添加到一个SLB实例后面?

  • SLB不支持跨地域( Region)部署,一个SLB实例后端的多台ECS必须处于同一地域(Region)才可以配置

第6章:云上安全防护

课时31:互联网常见形式及安全威胁

在这里插入图片描述
在这里插入图片描述

安全形势

在这里插入图片描述

常见威胁

在这里插入图片描述

课时32:阿里云安全体系

在这里插入图片描述
在这里插入图片描述

课时33:云盾的基础DDOS防护

安全相关的概念

在这里插入图片描述

DDoS攻击

在这里插入图片描述

基础DDoS防护的实现流程

在这里插入图片描述

基础DDoS防护的主要功能

在这里插入图片描述

高防IP

在这里插入图片描述

高防IP接入流程

在这里插入图片描述

课时34:应用防火墙和安骑士

阿里云云盾WAF

在这里插入图片描述

云盾WAF的发展历程

在这里插入图片描述

云盾WAF的应用场景

在这里插入图片描述

云盾WAF的工作原理

在这里插入图片描述

阿里云云盾-安骑士

在这里插入图片描述

安骑士的工作方式

在这里插入图片描述

安装安骑士

在这里插入图片描述

课时35:云监控功能

阿里云-云监控

在这里插入图片描述

云监控功能预览

在这里插入图片描述

云监控CMS的应用场景

在这里插入图片描述

课时36:云安全功能操作演示

在这里插入图片描述
具体操作在实验中实践。

查看原文

赞 0 收藏 0 评论 0

Dexter 发布了文章 · 6月25日

阿里云【7天实践训练营】进阶路线——Day3:阿里云云计算助理工程师认证(ACA)课程3 ~ 4章

高校计划简介
为响应“新基建,新人才”号召,阿里云推出高校计划,向全国高校学生、教师免费提供2.68亿小时云服务器ECS算力,及“学练赛考”技术成长赋能体系。 陪伴两千多所高校的在校生云上实践、云上成长。点击高校计划立即申请。

在这里插入图片描述
我在阿里云高校计划参加了ECS训练营进阶班,赠送了价值600元的阿里云大数据助理工程师认证(ACA),希望大家感兴趣的话也来报名训练营,让我们一起当校友吧。

第3章 : 掌握云数据库RDS

课时11:云数据RDS产品介绍

概要

关系型数据库(Relational Database Service,简称RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus Advanced Server,高度兼容Oracle数据库)和MariaDB TX引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。

产品优势:

  1. 便宜易用,具有灵活计费、按需变配、即开即用等优点。
  2. 高性能,包括参数优化、SQL优化建议等。
  3. 高可用架构和多种容灾方案。
  4. 高安全性,提供多种安全措施保障数据安全。

基本信息

在这里插入图片描述

功能

  • 专业的数据库管理平台DMS

    • DMS不仅仅时位RDS定制的数据库管理平台,还可以使用户通过浏览器即可安全、方便的进行数据库管理和维护。
  • 轻松实现数据回溯

    • RDS能够根据备份文件将数据库恢复至7日内任意时刻。
  • 专业的数据库优化建议

    • RDS提供直观的慢SQL分析报告和完整的SQL运行报告,并提供如主键检查、索引检查等多种优化建议。
  • 完善的监控体系

    • RDS展示近20种性能资源监控视图。可对部分资源项设置阈值报警,并提供WEB操作、SQL审计等多种日志

RDS与自建数据库对比

在这里插入图片描述

课时12:云数据RDS实例管理

相关概念

  • 实例:实例是虚拟化的数据库服务器。您可以在一个实例中创建和管理多个数据库。

    • RDS实例目前支持的最大内存为48GB,最大磁盘容量为1000GB
  • 地域:地域是指物理的数据中心。一般情况下,RDS实例应该和ECS实例位于同一地域,以实现最高的访问性能。
  • 可用区:可用区是指在某个地域内拥有独立电力和网络的物理区域。同一地域的不同可用区之间没有实质性区别。
  • 数据库引擎:RDS支持多种数据库引擎,如MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus Advanced Server,高度兼容Oracle数据库)和MariaDB。关于各个引擎的介绍,请参见数据库引擎
  • 数据库账号:每个数据库账号可以用于多个数据库,同时每个数据库的读写权限也可被分配给多个数据库账号。一个账号可以创建多个实例。
  • RDS连接数:应用程序课同时连接到RDS实例的连接数量。
  • RDS磁盘容量:用户购买RDS时所选择的磁盘大小
  • RDS管理控制台:管理用户所购买的RDS实例的WEB界面,可对RDS实例进行各种操作。

如何选择RDS

在这里插入图片描述

管理控制台演示

在这里插入图片描述

课时13:云数据RDS数据库管理

管理控制台演示

在这里插入图片描述
基本操作会在实验中实操。

DMS介绍

数据管理DMS支持统一管理MySQL、SQL Server、PostgreSQL、PolarDB、DRDS、OceanBase、Oracle等关系型数据库,AnalyticDB、Data Lake Analytics、ClickHouse等OLAP数据库,MongoDB、Redis等NoSQL数据库。它是一种集数据管理、结构管理、用户授权、安全审计、数据趋势、数据追踪于一体的数据管理服务。您可以使用数据管理服务实现易用的数据库管理入口,让数据更安全、管理更高效、数据价值更清晰。


功能介绍

  • 提供研发从线下环境结构设计到SQLreview到生产发布的完整数据库研发流程。
  • 提供字段级别细粒度操作权限管控,所有用户操作在线化、可溯源。
  • 支持根据业务灵活配置结构设计、数据变更、数据导出等操作的审批流程。
  • 统一研发与数据库交互的入口,任何用户都不再直接接触数据库账号密码也不需要频繁切换数据库连接进行管理。
  • 通过平台统一接入数据库,员工无需接触数据库账号访问数据库。

    • 员工在平台内通过流程审批开通库、表、列的查询、导出、变更权限,全部操作记录可审计、可溯源
    • 单人单次查询数据返回行数上限,每天查询行数、次数上限等均支持灵活定义。
  • 平台自动检测变更风险,DBA可根据经验制定规范分级管控。

    • 无风险操作轻流程或无流程审核后,研发自助触发平台调度执行。
    • 有风险操作审核到DBA评估后,再触发平台调度执行。
    • 语法正确性自动保障、变更类型识别、定时自动调度、反馈执行结果无需人肉半夜盯屏。

客户端工具

MAC平台:SEQUEL PRO
在这里插入图片描述
官方网站:http://www.sequelpro.com
Windows平台:MySQL-Front
在这里插入图片描述
官方网站:https://mysql-front.en.softon...

课时14:云数据RDS的数据迁入

使用数据传输服务(DTS)将本地数据库迁移到RDS PPAS,可以实现应用不停服务的情况下,平滑完成数据库的迁移工作。迁移过程中,对本地的Oracle数据库没有影响。

迁移类型说明

结构迁移

  • DTS将迁移对象的结构定义迁移到目标实例。

全量数据迁移

  • DTS将源RDS实例迁移对象的存量数据,全部迁移到目标RDS实例中。

增量数据迁移

  • DTS在全量迁移的基础上,将源RDS实例的增量更新数据同步到目标RDS实例中。通过增量数据迁移可以实现在自建应用不停服的情况下,平滑地完成数据迁移。

mysqldump工具

  • 购买RDS实例;
  • 利用mysqldump备份数据
  • 利用mysqldump导出存储过程、触发器和函数
  • 将数据导入至RDS

使用mysqldump工具的优点是简单易用、容易上手,缺点是停机时间较长,因此它适用于数据量不大,或者允许停机的时间较长的情况。

演示:通过DTS完成迁移

在实验中实操。

课时15:云数据RDS产品家族

云数据库

阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus Advanced Server,高度兼容Oracle数据库)和MariaDB TX引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。

RDS SQL Server

RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。

RDS SQL Server支持的功能请参见SQL Server功能概览

RDS PostgreSQL

RDS PostgreSQL是先进的开源数据库,它的优点主要集中在对SQL规范的完整实现以及丰富多样的数据类型支持,包括JSON数据、IP数据和几何数据等。除了完美支持事务、子查询、多版本控制(MVCC)、数据完整性检查等特性外,RDS PostgreSQL还集成了高可用和备份恢复等重要功能,减轻您的运维压力。

RDS PostgreSQL支持的功能请参见PostgreSQL功能概览

RDS PPAS

RDS PPAS是稳定、安全且可扩展的企业级关系型数据库,基于全球最先进的开源数据库PostgreSQL,并在性能、应用方案和兼容性等方面进行了增强,提供直接运行Oracle应用的能力。您可以在PPAS上稳定地运行各种企业应用,同时得到更高性价比的服务。

RDS PPAS支持的功能请参见PPAS功能概览

第4章 : 掌握云存储OSS

课时18:阿里云OSS产品概要

引子:物理存储时代的困扰

在这里插入图片描述

OSS介绍

对象存储服务(Object Storage Service,简称OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。其数据设计持久性不低于99.9999999999%(12个9),服务可用性(或业务连续性)不低于99.995%。

OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,您可以选择标准存储(Standard)作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问存储(Infrequent Access)、归档存储(Archive)作为不经常访问数据的存储方式。

优势

在这里插入图片描述
在这里插入图片描述

OSS具备的其他各项优势

  • 方便、快捷的使用方式

    • 提供标准的RESTful API接口、丰富的SDK包、客户端工具、控制台。您可以像使用文件一样方便地上传、下载、检索、管理用于Web网站或者移动应用的海量数据。
    • 不限制存储空间大小。您可以根据所需存储量无限扩展存储空间,解决了传统硬件存储扩容问题。
    • 支持流式写入和读出。特别适合视频等大文件的边写边读业务场景。
    • 支持数据生命周期管理。您可以通过设置生命周期规则,将到期数据批量删除或者转储为更低成本的低频访问、归档存储。
  • 强大、灵活的安全机制

    • 灵活的鉴权,授权机制。提供STS和URL鉴权和授权机制、IP黑白名单、防盗链、主子账号等功能。
    • 提供用户级别资源隔离机制和多集群同步机制(可选)。
  • 数据冗余机制

OSS采用数据冗余存储机制,将每个对象的不同冗余存储在同一个区域内多个设施的多个设备上,确保硬件失效时的数据可靠性和可用性。

    • OSS Object操作具有强一致性,用户一旦收到了上传/复制成功的响应,则该上传的Object就已经立即可读,且数据已经冗余写入到多个设备中。
    • OSS会通过计算网络流量包的校验和,验证数据包在客户端和服务端之间传输中是否出错,保证数据完整传输。
    • OSS的冗余存储机制,可支持两个存储设施并发损坏时,仍维持数据不丢失。

      • 当数据存入OSS后,OSS会检测和修复丢失的冗余,确保数据可靠性和可用性。
      • OSS会周期性地通过校验等方式验证数据的完整性,及时发现因硬件失效等原因造成的数据损坏。当检测到数据有部分损坏或丢失时,OSS会利用冗余的数据,进行重建并修复损坏数据。
    • 丰富、强大的增值服务

      • 图片处理:支持JPG、PNG、BMP、GIF、WebP、TIFF等多种图片格式的转换,以及缩略图、剪裁、水印、缩放等多种操作。
      • 音视频转码:提供高质量、高速并行的音视频转码能力,让您的音视频文件轻松应对各种终端设备。
      • 互联网访问加速:OSS提供传输加速服务,支持上传、下载加速,可优化跨洋、跨省数据上传、下载体验。详情请参见传输加速。
      • 内容加速分发:OSS作为源站,搭配CDN进行内容分发,提升同一个文件,被大量重复下载的体验。

    课时19:阿里云OSS的相关概念

    对象/文件(Object)

    <span id="object">对象</span> OSS 存储数据的基本单元,也被称为 OSS 的文件。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成。对象由存储空间内部唯一的 Key 来标识。对象元信息是一组键值对,表示了对象的一些属性,比如最后修改时间、大小等信息,同时用户也可以在元信息中存储一些自定义的信息。

    • 文件大小限制:通过Put Object方式最大不能超过5GB,使用multipart上传方式Object大小不能超过48.8TB

    对象的生命周期是从上传成功到被删除为止。在整个生命周期内,只有通过追加上传的 Object 可以继续通过追加上传写入数据,其他上传方式上传的 Object 内容无法编辑,您可以通过重复上传同名的对象来覆盖之前的对象。

    对象的命名规范如下:

    • 使用 UTF-8 编码。
    • 长度必须在 1–1023 字节之间。
    • 不能以正斜线(/)或者反斜线()开头。

    存储空间(Bucket)

    <span id="bucket">存储空间</span>是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。用户可以根据实际需求,创建不同类型的存储空间来存储不同的数据。

    • 同一个存储空间的内部是扁平的,没有文件系统的目录等概念,所有的对象都直接隶属于其对应的存储空间。
    • 每个用户可以拥有多个存储空间(最多10个)。
    • 存储空间的名称在 OSS 范围内必须是全局唯一的,一旦创建之后无法修改名称。
    • 存储空间内部的对象数目没有限制。

    存储空间的命名规范如下:

    • 只能包括小写字母、数字和短横线(-)。
    • 必须以小写字母或者数字开头和结尾。
    • 长度必须在 3–63 字节之间。

    Service

    提供给用户的虚拟存储空间,用户可以在这个存储空间中拥有一个或多个Bucket。

    Access ID & Access Key(API密钥)

    用于标识用户,为访问OSS做签名验证。

    数据组织结构

    在这里插入图片描述

    OSS访问域名

    在这里插入图片描述
    举例:
    在这里插入图片描述

    Object外链地址构成规则

    在这里插入图片描述

    课时20:阿里云OSS的基本操作

    Bucket操作

    在这里插入图片描述
    请参考本文前半部分的的:存储空间

    Object操作

    在这里插入图片描述
    请参考本文前半部分的的:对象

    课时21:阿里云OSS的API与SDK介绍

    OSS API调用说明

    在这里插入图片描述

    OSS API接口列表

    • Service操作

      • GetService
    • Object操作

      • Copy Object
      • Delete Object
      • Delete Multiple Objects
      • Get Object
      • Head Object
      • Put Object
      • PostObject
    • Bucket操作

      • Delete Bucket
      • Delete Bucket Logging
      • Delete Bucket Website
      • Get Bucket (List Objects)
      • Get Bucket Acl
      • Get Bucket Location
      • Get Bucket Logging
      • Get Bucket Website
      • Put Bucket
      • Put Bucket Acl
      • Put Bucket Logging
      • Put Bucket Website
    • 跨域资源共享(CORS)操作

      • Put Bucket CORS
      • Get Bucket CORS
      • Delete Bucket CORS
      • Option Object
    • OSS的错误响应

      • OSS的错误响应格式
      • OSS的错误码
      • OSS不支持的操作
      • OSS操作支持但参数不支持的操作
    • Multipart Upload操作

      • Initiate Multipart Upload
      • Upload Part
      • Upload Part Copy
      • Complete Multipart Upload
      • Abort Multipart Upload
      • List Multipart Uploads
      • List Parts

    OSS API使用示例

    在这里插入图片描述

    OSS SDK支持的开发包

    在这里插入图片描述

    基于OSS SDK进行开发

    在这里插入图片描述

    基于OSS SDK的第三方工具

    • OSSFTP
    • OSSBrowser

    课时22:阿里云OSS之静态网站托管

    适用场景:网站静态内容存储在OSS Bucker中时。

    静态网站托管

    在这里插入图片描述
    在这里插入图片描述

    查看原文

    赞 0 收藏 0 评论 0

    Dexter 发布了文章 · 6月24日

    阿里云【7天实践训练营】进阶路线——Day2:阿里云云计算助理工程师认证(ACA)课程1 ~ 2章

    高校计划简介
    为响应“新基建,新人才”号召,阿里云推出高校计划,向全国高校学生、教师免费提供2.68亿小时云服务器ECS算力,及“学练赛考”技术成长赋能体系。 陪伴两千多所高校的在校生云上实践、云上成长。点击高校计划立即申请。

    在这里插入图片描述
    我在阿里云高校计划参加了ECS训练营进阶班,赠送了价值600元的阿里云大数据助理工程师认证(ACA),希望大家感兴趣的话也来报名训练营,让我们一起当校友吧。

    ACA介绍

    ACAAlibaba Cloud Certified Associate,阿里云云计算助理工程师认证。

    产品体验地址:https://edu.aliyun.com/course...

    如何购买并使用ACA认证,请参考:https://edu.aliyun.com/articl...


    云计算ACA认证的价值:

    培训和认证的过程能够提升个人对云计算产品技术的理解,可以对这些产品进行基本的日常管理,也可以基于这些产品进行应用的部署。从而证明您在云计算领域的专业能力,获得更多就业机会。


    课程形式:

    28课时视频教程 + 10个配套实验 + 在线考试,考试通过即可获得阿里云云计算助理工程师认证(ACA)证书。


    认证使用流程:

    购买认证——开始学习——动手实验——参与考试——领取证书。

    在完成ACA认证购买后,您可以享受ACA认证包内课程在有效期(6个月)内无限次观看权益。可获得2次在线实验所对应的沙箱点,并获得2次参与认证考试的机会(1次正式考试,1次补考机会)。考试通过后可以获得阿里云官方电子版认证证书。


    课程介绍:

    第1章:阿里云简介(3课时)

    • 主要介绍阿里云产品与技术概览、基础架构以及云安全体系等。

    第2章:掌握云服务器ECS(5课时+2配套实验)

    • 主要介绍云服务器ECS概念以及实例、磁盘、快照的基本操作,配套2个实验,教你掌握ECS的使用。

    第3章:掌握云数据库RDS(5课时+2配套实验)

    • 主要介绍云数据库RDS的实例管理、数据库管理、数据迁移上云等操作,配套2个实验,教你掌握RDS的使用。

    第4章:掌握云存储OSS(5课时+2配套实验)

    • 主要介绍阿里云对象存储OSS的概念、基本操作、API和SDK的使用、静态网站托管等,配套2个实验,教你掌握OSS的使用。

    第5章:掌握负载均衡SLB(4课时+2配套实验)

    • 主要介绍负载均衡SLB的产品概述、基本操作和相关问题等,配套2个实验,教你掌握SLB的使用。

    第6章:掌握云安全(6课时+2配套实验)

    • 主要介绍互联网常见的安全威胁、阿里云安全体系,以及云盾、安骑士、云监控相关功能等,配套2个实验,教你掌握云上安全防护。

    第1章:阿里云简介

    在进行学习之前,首先从个人角度推荐一篇文章:《阿里云的这群疯子》,讲的是阿里云创建的奋斗过程。

    代码成就万世基积沙镇海
    梦想永在凌云意意气风发

    上面是阿里云早期的对联,从对联可以看出阿里云对代码的重视程度。
    下面图片是阿里云“第一行代码”。
    在这里插入图片描述

    课时1:阿里云简介

    公司简介

    阿里巴巴云计算技术有限公司(简称阿里云)成立于 2009 年 9 月 10 日,由阿里巴巴集团投资创办,在杭州、北京和硅谷等地设有研发中心和运营机构。
    在这里插入图片描述
    阿里云依托阿里巴巴强大的技术实力和业务场景,集中了国内外云计算领域的顶尖专家,历时两年多的时间,研发出国内第一个拥有自主知识产权的云计算平台,并且,经过多年的实际生产运行的检验和双十一的海量业务冲击,成为国内第一个可用、可靠、可信的云计算平台。

    企业愿景

    在未来的互联网中,云计算将会成为一种随时、随地,且根据需要而提供的公共服务。高效的绿色数据中心以及能支持不同互联网应用的大规模分布式存储和计算是营造下一代互联网服务平台最基本的核心技术。

    阿里云致力于打造公共、开放的云计算服务平台,并将借助技术的创新,不断提升计算能力与规模效益,将云计算变成真正意义上的公共服务。

    与此同时,阿里云将通过互联网的方式使得用户可以便捷地按需获取阿里云的云计算产品与服务。 阿里云希望更多的合作伙伴、中小企业、开发者能够受益于云计算带来的便利和价值,从而促进云生态系统的健康发展,为下一代信息经济构建新的基础设施。

    阿里云是如何提供服务的

    阿里云的服务不只是为了客户,实际上它对阿里巴巴集团30+个BU(Business Unit,事业部)提供底层技术支持、驱动技术创新数据创新。
    在这里插入图片描述
    大家之所以能在双十一愉快剁手,就是因为阿里云提供的支持,不会让淘宝在关键时刻宕机。

    阿里云底层:强大的基础设施

    • 规模最大的集群
    • 多运营商BGP接入(Border Gateway Protocol,边界网关协议)
    • 拥有最优质的CDN网络(Content Delivery Network,内容分发网络)

    在这里插入图片描述

    阿里云的客户生态

    在这里插入图片描述

    阿里云计算的优势

    阿里云计算是将一些可以自我维护和管理的虚拟计算资源整合在飞天集群中,包括计算服务器、存储服务器和宽带资源等,并通过自动化运维方式实现任务调度、自动管理、无人介入生产等。用户可以动态申请部分资源以支持各种应用程序的运转,省去了购买网络设备和服务器、租用机柜等烦恼,从而集中精力开拓业务,有利于提高效率、降低成本和技术创新。 阿里云计算对比传统自建 IT基础设施和托管有如下优势:

    • 超大的集群规模。阿里云计算集群具有能够适应海量计算的服务器规模,最大的集群服务器数量达到 5000台,并可以提供多集群的计算资源,能够为用户提供前所未有的计算能力。
    • 强大的弹性扩展能力。阿里云支持客户业务动态伸缩,满足应用和用户规模增长的需要。业务增长时计算、存储资源随之增长,反之则随之下降,让资源使用效率最大化。
    • 按需服务。阿里云是一个庞大的资源池,用户购买计算、数据、存储资源可以按需购买,如同使用自来水、电和煤气那样按量计费,不会造成计算资源的闲置和浪费。
    • 成本低廉。阿里云的计算架构和特殊容错措施使其可以采用极其廉价的节点来构成云。阿里云的自动化管理使数据中心管理成本大幅降低。阿里云的公用性和通用性使资源的利用率大幅提升。依托阿里巴巴海量、优质的数据中心和网络带宽资源,阿里云可以为客户提供极高性价比和极低总体拥有成本的计算服务。
    • 安全稳定。阿里云主机、数据库等产品采用了阿里云分布式技术,在数据方面对每一份数据分散存储同时保留三份或三份以上镜像,大幅降低数据丢失的可能性。在服务器资源方面,一台云服务器宕机会在 20 分钟内迁移到其他物理服务器启动起来,从而保证系统的可用性。并且提供给用户两地三中心的基础设施来部署有更高可用性和连续性要求的业务系统。

    课时2:阿里云产品与技术简介

    阿里云的设计理念

    1. 通过大规模效应降低成本
    2. 多地域、多可用区容灾
    3. 服务化方式开放

    完整的体系架构

    在这里插入图片描述

    完善的阿里云服务产品线

    在这里插入图片描述
    以构建一个网站举例:

    1. 要有存储网站内容、要能分享内容能力
    2. 要有服务器、有地方部署网站的代码
    3. 当网站数据量较大时,需要结构化数据存储能力
    4. 随着数据量不断增大,需要做一些报表、统计之类,数据库已经不能完全满足,需要大规模计算能力
    5. 随着业务增长,想要增加一些功能,需要应用及中间件服务
    6. 必须保证网站的安全,需要安全服务

    更多实现

    在这里插入图片描述

    开通云服务器

    进入云服务器购买页面进行购买云服务器,具体操作如下: <span id="basics">基础配置部分</span>

    基础配置部分

    一、付费模式
    在这里插入图片描述
    包年包月如字面意思,一次性购买一个月或者几个月乃至几年的产品。优点是稳定,适合长期使用服务器的用户购买。缺点是价格比较高,一次性支出大量的钱。

    按量付费就是用几个小时就扣几小时的钱(需要最少有100元的余额),适合于短期使用,以小时为单位价格便宜。缺点是不稳定,可能会在紧要关头服务器到期导致直接关闭,前功尽弃。

    抢占式实例相对于按量付费有较大优惠。使用者先稳定持有实例一小时,之后当市场价格高于使用者的出价或者资源供需关系变化时,实例会被自动释放,所以需要做好数据备份工作。

    在这里,个人推荐包年包月购买。


    二、地域
    在这里插入图片描述
    地域是指物理的数据中心。资源创建成功后不能更换地域。在中国内地,一般情况下建议选择和用户所在地域最为接近的数据中心,可以进一步提升用户访问速度。

    在这里,个人选择了华北3(张家口),不过在国内所有地域都差不多。


    三、实例系列
    实例就是云服务器的规格,包括CPU、内存等,可根据需要来选择合适的规格。
    在这里插入图片描述
    我的配置是:2 vCPU 4 GiB (I/O优化) ecs.t5-c1m2.large 1Mbps


    <span id="image">四、镜像</span>
    在这里插入图片描述

    • 公共镜像:是由阿里云官方提供公共基础镜像,仅包括初始系统环境。
    • 自定义镜像:基于用户系统快照生成,包括初始系统环境、应用环境和相关软件配置。选择自定义镜像创建云服务器更节省时间。
    • 共享镜像:是其他账号的自定义镜像主动共享给用户使用的镜像。
    • 镜像市场:提供经严格审核的优质镜像,预装操作系统、应用环境和各类软件,无需配置,可一键部署云服务器。推荐使用镜像市场,唯一的缺点是有些镜像价格昂贵。

    我的镜像是镜像市场中的:LAMP环境(Ubuntu18.04 Apache PHP7.1)


    五、存储
    在这里插入图片描述
    存储主要分系统盘和数据盘,系统盘就是整个操作系统所安装的虚拟硬盘,而数据盘则是提供挂载到某一盘符或者目录下。


    网络和安全组部分

    六、网络
    在这里插入图片描述
    专有网络则是用户自有一个虚拟路由网络和交换机,只有同一网络、交换机下的产品才能互联,专有网络还可以绑定弹性IP,就算换云服务器了,IP依旧可以保持不变。


    七、公网IP
    在这里插入图片描述
    按流量计费就像手机的流量套餐,不同地域的流量资费不同。按带宽计费就是先买断多少M的带宽,后面无关用多少流量都不计费。


    之后还有安全组、弹性网卡等设置,系统自动分配就可以,用户无需插手。

    至此,云服务器购买成功,之后还有改服务器名、设密码等操作可以在购买时进行,也可以在购买后进行。

    课时3:阿里云基础应用架构介绍

    阿里云基础应用架构建议

    下面是阿里云四大件(ECS、SLB、RDS、OSS)。可以用来入门阶段的应用实现:
    在这里插入图片描述

    云服务器ECS

    云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。

    负载均衡SLB

    负载均衡(Server Load Balancer,简称SLB)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。

    负载均衡通过设置虚拟服务地址,将添加的同一地域的多台ECS实例虚拟成一个高性能、高可用的后端服务池,并根据转发规则,将来自客户端的请求分发给后端服务器池中的ECS实例。

    负载均衡默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用服务的防护能力。

    产品优势:

    1. 高可用
    • 采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾,可用性高达99.95%。
    • 根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。
    1. 可扩展
    • 您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。
    1. 低成本
    • 与传统硬件负载均衡系统高投入相比,成本可下降60%。
    1. 安全
    • 结合云盾,可提供5Gbps的防DDoS攻击能力。
    1. 高并发
    • 集群支持亿级并发连接,单实例提供千万级并发能力。

    关系型数据库服务RDS

    关系型数据库(Relational Database Service,简称RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus Advanced Server,高度兼容Oracle数据库)和MariaDB TX引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。

    产品优势:

    1. 便宜易用,具有灵活计费、按需变配、即开即用等优点。
    2. 高性能,包括参数优化、SQL优化建议等。
    3. 高可用架构和多种容灾方案。
    4. 高安全性,提供多种安全措施保障数据安全。

    对象存储服务OSS

    对象存储服务(Object Storage Service,简称OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。其数据设计持久性不低于99.9999999999%(12个9),服务可用性(或业务连续性)不低于99.995%。

    OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

    您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,您可以选择标准存储(Standard)作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问存储(Infrequent Access)、归档存储(Archive)作为不经常访问数据的存储方式。

    第2章:掌握云服务器ECS

    课时4:云服务器ECS概述

    概念

    云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。

    定位

    ECS是阿里云产品体系中,最基础的计算服务,通常用作应用程序的运行环境,其最重要的特点是弹性。

    • 弹性:按需扩展

    实现原理

    基于阿里云自主研发的大规模分布式计算系统,通过虚拟化技术整理IT资源,为各行业提供互联网基础设施服务设备。
    在这里插入图片描述

    ECS是应用的基础运行环境

    • 每个ECS实例上都运行着用户选择的操作系统,一般是某个Linux或Windows的发行版;
    • 用户的应用程序运行在实例的操作系统之上;
    • 较好的实践是将ECS和其他云计算产品配合使用,例如,使用ECS运行webserver,使用RDS作为数据库,OSS作为文件存储;
    • 应避免完全将原有物理服务器上的应用都照搬跑到云服务器上。

    在这里插入图片描述

    ECS的弹性伸缩能力

    ECS最重要的特点是弹性,支持垂直和水平扩展两种能力。
    在这里插入图片描述

    ECS优势

    在这里插入图片描述

    课时5:云服务器ECS的产品概念

    云服务器ECS主要包含以下功能组件:

    • 实例(instance):等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的计算组件。实例的计算性能、内存性能和适用业务场景由实例规格决定,其具体性能指标包括实例vCPU核数、内存大小、网络性能等。
    • 磁盘(disk):块设备类型产品,具备高性能和低时延的特性。提供基于分布式存储架构的云盘以及基于物理机本地存储的本地盘。
    • 快照(snapshot):某一时间点一块云盘的数据状态文件。常用于数据备份、数据恢复和制作自定义镜像等。
    • 镜像(image):提供实例的操作系统、初始化应用数据及预装的软件。操作系统支持多种Linux发行版和多种Windows Server版本。
    • 安全组(security group):由同一地域内具有相同保护需求并相互信任的实例组成,是一种虚拟防火墙,用于设置实例的网络访问控制。
    • 更多功能组件详情,请参见云服务器ECS产品详情页

    以下为云服务器ECS的产品组件架构图,图中涉及的功能组件的详细介绍请参见相应的帮助文档。
    在这里插入图片描述


    地域(Region)和可用区(Zone)
    地域(Region)和可用区(Zone)是两个概念:
    在这里插入图片描述
    可用区是指在同一地域内,电力和网络互相独立的物理区域。同一可用区内实例之间的网络延时更小。在同一地域内可用区与可用区之间内网互通,可用区之间能做到故障隔离。
    在这里插入图片描述
    是否将实例放在同一可用区内,主要取决于对容灾能力和网络延时的要求。如果应用需要较高的容灾能力,建议将实例部署在同一地域的不同可用区内。如果应用要求实例之间的网络延时较低,建议您将实例创建在同一可用区内。

    课时6:云服务器ECS实例介绍

    一台云服务器ECS实例等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的计算组件。

    • 实例时ECS最基本的资源。只有基于实例,才能使用网络、存储、快照等其他资源。

    实例的计算性能、内存性能和适用业务场景由实例规格决定,其具体性能指标包括实例vCPU核数、内存大小、网络性能等。
    计费方式、开通服务请参考本文的基础配置部分
    购买之后可以访问云服务器ECS,点击管理控制台进行管理。

    课时7:云服务器ECS磁盘介绍

    在这里插入图片描述
    磁盘的主要操作:创建磁盘、挂载磁盘、卸载磁盘、释放磁盘、回滚磁盘、扩容磁盘、更换系统盘(系统盘扩容)。


    磁盘的使用限制
    在这里插入图片描述

    课时8:云服务器ECS快照及镜像介绍

    快照

    阿里云快照可以为所有类型的云盘创建崩溃一致性快照,是一种便捷高效的数据容灾手段,常用于数据备份、制作自定义镜像、应用容灾等。


    应用场景:

    • 容灾备份:为云盘创建快照,再使用快照创建云盘获取基础数据,实现同城容灾和异地容灾。
    • 环境复制:使用系统盘快照创建自定义镜像,再使用自定义镜像创建ECS实例,实现环境复制。
    • 数据开发:为数据挖掘、报表查询和开发测试等应用提供近实时的真实生产数据。
    • 提高容错率:出现操作失误时,能及时回滚数据,降低操作风险,实现版本回退。

      • 定期创建快照,避免常见的失误操作。例如,团队成员不慎在云盘上存储了错误的数据、ECS实例被误释放、应用错误导致了数据错误、或者骇客利用应用漏洞恶意删除业务数据等。
      • 执行重要操作前创建一份快照,常见的重要运维操作包括更换操作系统、应用软件升级或业务数据迁移等。

    在这里插入图片描述


    快照原理
    在这里插入图片描述

    镜像

    ECS镜像提供了创建ECS实例所需的信息。创建ECS实例时,必须选择镜像。镜像文件相当于副本文件,该副本文件包含了一块或多块云盘中的所有数据,对于ECS而言,这些云盘可以是单块系统盘,也可以是系统盘加数据盘的组合。
    镜像分为四种类型,具体请查看本文中的:四、镜像

    查看原文

    赞 0 收藏 0 评论 0

    Dexter 发布了文章 · 6月22日

    阿里云【7天实践训练营】进阶路线——Day1:搭建云笔记

    高校计划简介
    为响应“新基建,新人才”号召,阿里云推出高校计划,向全国高校学生、教师免费提供2.68亿小时云服务器ECS算力,及“学练赛考”技术成长赋能体系。 陪伴两千多所高校的在校生云上实践、云上成长。点击高校计划立即申请。

    在这里插入图片描述
    我在阿里云高校计划参加了ECS训练营进阶班,赠送了价值600元的阿里云大数据助理工程师认证(ACA),希望大家感兴趣的话也来报名训练营,让我们一起当校友吧。

    一、设置安全组

    1、进入本实例安全组

    在这里插入图片描述

    2、点击配置规则

    在这里插入图片描述

    3、点击手动添加

    在这里插入图片描述
    勾选HTTP(80)和HTTPS(443),授权对象为:0.0.0.0/0。

    二、安装MongoDB

    MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
    说明:我的系统为Ubuntu 18.04,在这里安装的是MongoDB 4.0.1

    1、导入包管理系统使用的公钥

    执行命令:

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 

    在这里插入图片描述

    2、为MongoDB创建一个列表文件

    执行命令:

    echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list

    在这里插入图片描述
    在这一步需要注意,不同版本的Ubuntu安装MongoDB时命令有差异,同一个版本的Ubuntu安装不同版本的MongoDB时命令也有差异。我一开始按照Ubuntu14的命令安装MongoDB 3.4版本导致出错,后逐步排查才发现问题。最终安装了Ubuntu18.04对应的4.0.1版本的MongoDB后解决问题。

    3、更新本地包数据库

    执行命令:

    sudo apt update

    在这里插入图片描述

    4、安装自己需要的版本的MongoDB

    执行命令:

    sudo apt install mongodb-org=4.0.1 mongodb-org-server=4.0.1 mongodb-org-shell=4.0.1 mongodb-org-mongos=4.0.1 mongodb-org-tools=4.0.1

    在这里插入图片描述

    5、验证安装是否成功

    执行命令:

    mongod --version

    在这里插入图片描述

    三、安装Leanote

    1、下载Leanote

    ① 执行命令:

    wget https://nchc.dl.sourceforge.net/project/leanote-bin/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz

    ② 也可以本地下载后通过sftp上传二进制包:

    • 复制命令中的网址直接打开,开始下载,下载完成后再传给服务器就可以。

      • 怎么传——邮件或PuTTy。
    • 或者如果虚拟机安装有图形化界面,直接在虚拟机中打开浏览器输入网址下载。

    我采用的是本地下载方式,速度比较快。

    2、解压

    执行命令:

    tar xzf leanote-linux-amd64-v2.6.1.bin.tar.gz

    在这里插入图片描述

    3、启动MongoDB

    执行命令:

    sudo service mongod start

    4、导入数据库

    执行命令:

    cd leanote
    mongorestore -h localhost -d leanote --dir mongodb_backup/leanote_install_data/

    在这里插入图片描述
    最后出现done代表成功。

    5、启动Leanote

    依次执行命令:

    cd
    apt install screen
    screen -S leanote
    cd leanote/bin
    bash run.sh

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    出现Listening on:9000表示成功。
    至此,Leanote已经可以使用,通过47.92.38.96:9000可以正常访问,云笔记安装完成。下面的第四步内容属于拓展部份。

    四、配置Leanote

    Leanote可以绑定到域名上,避免使用复杂拗口的ip地址访问。下面的操作正是为了Leanote通过域名访问。
    执行命令:

    cd ../ 

    在这里插入图片描述

    在这里插入图片描述

    cd conf

    在这里插入图片描述

    vim app.conf

    在这里插入图片描述

    在这里插入图片描述
    将此处9000端口改为80端口。
    在这里插入图片描述
    然后执行下列命令:

    cd ../
    cd bin
    bash run.sh

    在这里插入图片描述

    在这里插入图片描述
    之后便可以通过域名访问Leanote。但是我的域名的80端口还另有用处,所以最终我把Leanote配置又改成了9000,还是通过47.92.38.96:9000访问。

    已知nginx的反向代理功能可以解决端口分发问题,准备日后动手处理,把访问方式再换为域名。

    五、使用Leanote

    1、登录

    输入47.92.38.96:9000访问Leanote,进入登录界面。
    在这里插入图片描述
    点击sign up,输入作为管理员账户的admin,密码abc123。我在登录后把管理员账户的账号密码修改了,建议大家都修改。
    在这里插入图片描述

    2、修改管理员账户

    Leanote文件夹下执行下列命令:

    cd conf
    vim app.conf

    进入到这个界面:
    在这里插入图片描述
    修改adminUsername

    3、enjoy

    然后可以开始写自动同步的云笔记了。
    在这里插入图片描述

    查看原文

    赞 0 收藏 0 评论 0

    认证与成就

    • 获得 0 次点赞
    • 获得 3 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 3 枚铜徽章

    擅长技能
    编辑

    开源项目 & 著作
    编辑

    (゚∀゚ )
    暂时没有

    注册于 6月15日
    个人主页被 169 人浏览