Category : 教程系列

该系列的一部分: MongoDB 安全性:确保数据安全的最佳实践 MongoDB,也称为Mongo,是许多现代 Web 应用程序中使用的文档数据库。与任何数据库管理系统一样,负责管理 Mongo 数据库的人员必须遵守推荐的安全最佳实践,以防止数据在发生灾难时丢失并防止其落入恶意行为者之手。 本系列概念文章对 MongoDB 的内置安全功能进行了高级概述,同时还重点介绍了一些通用的数据库安全最佳实践。 无论您或您的云提供商采取何种预防措施来防止它们,计算机始终面临硬件故​​障的风险。管理任何计算机系统(不仅仅是 MongoDB 安装)的一个重要部分是定期备份您的重要信息。通过获取和存储数据备份,您可以在数据库服务器崩溃并且原始数据丢失时将应用程序恢复到正常工作状态。 正如您应该定期备份 MongoDB 数据一样,将这些备份存储在与托管数据库的服务器不同的位置也同样重要。如果您将备份存储在与数据库相同的数据中心,那么如果数据中心发生故障,则数据库和备份都将不可用,并且您将无法使用备份来恢复您的应用程序在线的。 复制是一种类似于制作备份的做法:制作备份涉及拍摄数据库中所有数据的时间点快照,而复制涉及跨多个独立数据库不断同步数据。拥有数据的多个副本通常很有用,因为这可以在其中一个数据库服务器出现故障时提供冗余,还可以提高数据库的可用性和可伸缩性,以及减少读取延迟。在 MongoDB 中,一组通过复制维护相同数据集的服务器称为副本集。 官方文档建议将生产环境中使用的任何 Mongo 数据库部署为副本集,因为 MongoDB 副本集采用称为自动故障转移的功能。这意味着如果主要成员出现故障并且在预定的时间内无法与次要成员通信,次要成员将自动选举一个新的主要成员,从而确保您的数据对您的应用程序或依赖于它。 相关资源 异地备份的重要性 如何在 Ubuntu 20.04 上备份、恢复和迁移 MongoDB 数据库 如何在 Ubuntu 20.04 上配置 MongoDB..

Read more

围棋是编译,静态类型编程语法类似的语言Ç。Go 也被称为“Golang”,因其在网络和多处理方面的性能而闻名。 Go 1.0 版最初由 Google 设计,于 2012 年 3 月作为公共开源项目发布。今天,它是一个非常受欢迎的项目,拥有超过一千名来自社区的贡献者。Go 的设计使其在构建并发程序方面很受欢迎,语言中内置了 goroutines 和 channels 等功能。 如需更多与 Go 相关的教育资源,请查看我们的How To Code in Go系列。 在我们的Go 主题页面上找到完整的 Go 资�..

Read more

介绍 Elasticsearch是一个实时分布式搜索和分析数据的平台。由于其可用性、强大的功能和可扩展性,它是一种流行的选择。 本文将指导您安装 Elasticsearch、为您的用例配置它、保护您的安装以及开始使用您的 Elasticsearch 服务器。 先决条件 在学习本教程之前,您需要: 具有 4GB RAM 和 2 个 CPU 的 Ubuntu 18.04 服务器,设置为非 root sudo 用户。您可以通过使用 Ubuntu 18.04执行初始服务器设置来实现此目的 已安装 OpenJDK 11。有关说明,请参阅我们的指南How To Install Java with Apt on Ubuntu 18.04。 在本教程中,我们将使用运行 Elasticsearch 所需的最少 CPU 和 RAM。请注意,您的 Elasticsearch 服务器所需的 CPU、RAM 和存储量取决于您期望的日志量。 第 1 步 – 安装 Elasticsearch Elasticsearch 组件在 Ubuntu 的默认包存储库中不可用。但是,它们可以在添加 ..

Read more

介绍 在本教程中,您将在 CentOS 8 服务器上安装 LAMP 堆栈。尽管 MySQL 可从 CentOS 8 的默认存储库中获得,但本指南将介绍使用MariaDB作为数据库管理系统设置 LAMP 堆栈的过程 。 有关本教程的更详细版本以及每个步骤的更多解释,请参阅如何在 CentOS 8 上安装 Linux、Apache、MySQL、PHP (LAMP) 堆栈。 先决条件 要遵循本指南,您需要以sudo用户身份访问 CentOS 8 服务器。 第 1 步 – 安装 Apache 使用以下命令安装httpd软件包: sudo dnf install httpd 安装完成后,运行以下命令启用并启动服务器: sudo systemctl start httpd 如果firewalld处于活动状态,则需要运行以下命令以允许端口80(HTTP)上的外部访问: sudo firewall-cmd –permanent –add-service=http 重新加载防火墙配置以使更改生效: sudo firewall-cmd –reload 添加新的防火墙规则后,您可以通过从 Web 浏览器访问服务器的公共 ..

Read more

该系列的一部分: 如何使用 HTML 构建网站 本教程系列将指导您使用 HTML(用于在 Web 浏览器中显示文档的标准标记语言)创建和进一步自定义该网站。不需要有任何编码经验,但如果您想重新创建演示网站,我们建议您从本系列的开头开始。 在本系列结束时,您应该有一个准备好部署到云的网站,并且基本熟悉 HTML。了解如何编写 HTML 将为学习其他前端 Web 开发技能(例如 CSS 和 JavaScript)奠定坚实的基础。 我们现在将通过复制演示网站的顶部部分来开始添加内容。 此顶部部分由大背景图片、小个人资料图片、文本标题、文本副标题和链接组成。这些内容中的每一个都使用 HTML 进行样式设置和定位。 在本系列的其余教程中,我们将学习如何使用 HTML 在新网页上重新创建�..

Read more

介绍 本文将介绍Context API(在 16.3 版中引入)和React 钩子(在 16.8 版中引入)。 Context API 的引入解决了一个主要问题:道具钻孔。通过嵌套的深层组件层将数据从一个组件获取到另一个组件的过程。React hooks 允许使用函数式组件而不是基于类的组件。在需要使用生命周期方法的地方,我们必须使用基于类的方法。而且我们现在不再需要调用super(props)或担心绑定方法或this关键字。 在本文中,您将使用 Context API 和 React hooks 来构建一个功能齐全的CRUD应用程序来模拟员工列表。它将读取员工数据、创建新员工、更新员工数据和删除员工。请注意,本教程不会使用任何外部 API 调用。为了演示起见,它将使用硬编码的对象作为状态。 先决条件 要完成本教程,您需要: Node.js 的本地开发环境。遵循如何安装 Node.js 并创建本地开发环境。 了解导入、导出和渲染 React 组件。您可以查看我们的How To Code in React.js系列。 本教程已通过 Node v15.3.0、npmv7.4.0、reactv17.0.1、react-router-domv5.2.0、tailwindcss-cliv0.1.2 和tailwindcssv2.0.2 验证。 步骤 1 — 设置项目 首先,使用Create React App和以下命令设置 React 项目: npx create-react-app react-crud-employees-example 导航到新创建的项目目录: cd react-crud-employees-example ..

Read more

下载完整的电子书! EPUB 格式的Rails on Containers电子书 PDF 格式的Rails on Containers电子书 电子书简介 本书旨在向您介绍使用容器和 Kubernetes 进行全栈开发。您将学习如何使用 Ruby on Rails 和 PostgreSQL 和 Sidekiq 开发全栈应用程序,以及如何管理它们——首先使用 Docker,然后使用 Docker Compose,最后使用 Kubernetes。 本书基于DigitalOcean Community上的Rails on Containers系列教程。它涵盖的主题包括如何: 开始使用 Ruby on Rails 框架开发关于鲨鱼的应用程序 扩展应用程序的数据模型以合并用户提交的有关鲨鱼的信息 将 Stimulus JavaScript 和 Bootstrap CSS 框架添加到您的应用程序中,以创建具有视觉吸引力的交互式页面 将 Sidekiq 集成到您的应用程序中以处理异步数据处理 使用 Docker Compose 容器化您的应用程序并简化您的开发工作流程 将您的 Docker Compose 开发工作流迁移到 Kubernetes,完成一个完全云原生的应用程序 每章都旨在从第一章开始逐步构建。但是,如果您熟悉某个主题,或者对特定部分更感兴趣,请随时跳至最适合您目的的章节。 ..

Read more

介绍 内容在多栏和多栏杂志样式布局之间流动的布局现在可以使用CSS 多栏布局规范中定义的一些简单规则在 CSS 中轻松实现。这与CSS grid和flexbox 一起,确实允许我们以最少的努力定义几乎任何类型的布局。让我们来看看目前多列布局的可能性。 基本的多列布局 多列布局是通过在包含块元素上设置的列数或列宽属性来定义的。 列数 column-count为块元素应具有的列数取一个整数值: .col { background: var(–subtle-yellow2); padding: 1rem 2rem; } .col-3 { column-count: 3; } <article class=”col col-3″> <p>…</p> <p>…</p> <p>…</p> </article> Lorem ipsum dolor 坐 amet,consectetuer adipiscing 精英。多内克奥迪奥。古怪的 volutpat mattis 爱神。Nullammalesuada erat ut turpis。Suspendisse urna nibh、viverra non、semper suscipit、posuere a、pede。 Donec nec justo eget felis facilis ..

Read more

作者选择了电子前沿基金会作为Write for DOnations计划的一部分接受捐赠。 介绍 Apache 和 Nginx 是两种流行的开源 Web 服务器,通常与 PHP 一起使用。当托管具有不同要求的多个网站时,在同一虚拟机上运行它们会很有用。在单个系统上运行两个 Web 服务器的一般解决方案是使用多个 IP 地址或不同的端口号。 具有 IPv4 和 IPv6 地址的服务器可以配置为在一种协议上为 Apache 站点提供服务,而在另一种协议上为 Nginx 站点提供服务,但这目前并不实用,因为 ISP 对 IPv6 的采用仍未广泛。拥有像一个不同的端口号81或8080第二web服务器是另一种解决方案,但与端口号分享的网址(例如http://example.com:81)并不总是合理的或理想的。 在本教程中,您将 Nginx 配置为 Web 服务器和 Apache 的反向代理——所有这些都在单个服务器上。 根据 Web 应用程序,可能需要更改代码以保持 Apache 反向代理感知,尤其是在配置 SSL 站点时。为了避免这种情况,您将安装一个名为 Apache 的模块mod_rpaf,它会重写某些环境变量,因此 Apache 似乎是直接处理来自 Web 客户端的请求。 我们将在一台服务器上托管四个域名。Nginx 将提供两个服务:(example.com默认虚拟主机)和sample.org. 剩下的两个foobar.net和test.io将由 Apache 提供服务。我们还将配置 Apache ..

Read more

作为Write for DOnations计划的一部分,作者选择了技术教育基金来接受捐赠。 介绍 在 Kubernetes 上构建微服务的应用程序开发人员经常遇到两个主要问题,这会降低他们的速度: 缓慢的反馈循环。代码更改后,必须将其部署到 Kubernetes 进行测试。这需要构建容器、推送到容器注册表并部署到 Kubernetes。这会增加每次代码迭代的时间。 本地内存和 CPU 不足。开发人员试图通过使用minikube或等效物在本地运行 Kubernetes 来加速反馈循环。然而,资源匮乏的应用程序很快就会超过本地可用的计算和内存。 Telepresence是一个云原生计算基金会项目,用于在 Kubernetes 上进行快速、高效的开发。使用 Telepresence,您可以在本地运行服务,而在云中运行其余应用程序。Telepresence 在您的 Kubernetes 集群和您的本地工作站之间创建双向网络连接。这样,您在本地运行的服务就可以与集群中的服务进行通信,反之亦然。这使您可以使用集群的计算和内存资源,而不必为每次更改都经历一个完整的部署周期。 在本教程中,您将在运行 Ubuntu 20.04 的本地计算机上配置 Telepresence 以使用 Kubernetes 集群。您将拦截到集群的流量并将其重定向到您的本地环境。 先决条件 要完成本教程,您需要: Kubernetes 集群,例如DigitalOcean Kubernetes。我们将在本教程中使用 DigitalOcean Kubernetes,但您也可以使用现有的 Kubernetes 集群(本地或云)。 kubectl本地安装在您的工作站上并配置为连接到 Kubernetes 集群 Node.js 的本地开发环境。您可以按照如何安装 Node.js 并创建本地开发环境。 步骤 1 — 安装 Telepresence 在此步骤中,您将安装 Telepresence 并将其连接到您的 ..

Read more