Category : 教程系列

介绍 安全外壳协议(或 SSH)是一种加密网络协议,它允许用户通过不安全的网络安全地访问远程计算机。 尽管 SSH 支持基于密码的身份验证,但通常建议您改用SSH 密钥。SSH 密钥是一种更安全的登录 SSH 服务器的方法,因为它们不易受到常见的暴力密码黑客攻击。 生成 SSH 密钥对会创建两个长字符串:公钥和私钥。您可以将公钥放在任何服务器上,然后使用可以访问私钥的 SSH 客户端连接到服务器。 当公钥和私钥匹配时,SSH 服务器无需密码即可授予访问权限。您可以通过使用可选(但强烈建议)密码保护私钥来进一步提高密钥对的安全性。 注意:如果您正在寻找有关在您的 DigitalOcean 帐户中设置 SSH 密钥的信息,请参阅我们关于 SSH 密钥的 DigitalOcean 产品文档 步骤 1 — 创建密钥对 第一步是在客户端机器上创建一个密钥对。这可能是您的本地计算机。在本地命令行中键入以下命令: ssh-keygen -t ed25519 OutputGenerating public/private ed25519 key pair. 您将看到密钥生成过程已开始的确认信息,并提示您输入一些信息,我们将在下一步中讨论这些信息。 注意:如果您使用的是不支持创建ed25519密钥对的旧系统,或者您连接的服务器不支持它们,您应该创建一个强rsa密钥对: ssh-keygen -t rsa -b 4096 这会将-t“type”标志更改为rsa,并添加-b 4096“bits”标志以创建 4096 位密钥。 第 2 步 – 指定保存密钥的位置 ..

Read more

作为Write for DOnations计划的一部分,作者选择了免费和开源基金来接受捐赠。 介绍 将 Web 应用程序部署到 Kubernetes 时,您通常使用服务和入口来在所需域中的集群之外公开应用程序。这不仅涉及手动配置 Ingress,还涉及在您的提供商处手动配置 DNS 记录,这可能是一个耗时且容易出错的过程。随着您的应用程序变得越来越复杂,这可能会成为一个障碍;当外部 IP 发生变化时,需要相应地更新 DNS 记录。 为了克服这个问题,Kubernetes sig-network 团队创建了ExternalDNS,目的是从 Kubernetes 集群中自动管理外部 DNS 记录。部署后,ExternalDNS 在后台工作,几乎不需要额外配置。每当创建或更改服务或入口时,ExternalDNS 将立即更新记录。 在本教程中,您将通过 Helm将 ExternalDNS 安装到您的DigitalOcean Kubernetes集群,并将其配置为使用 DigitalOcean 作为您的 DNS 提供程序。然后,您将使用 Ingress 部署示例 Web 应用程序并使用 ExternalDNS 将其指向您的域名。最后,您将拥有一个适用于服务和入口的自动 DNS 记录管理系统。 先决条件 一个 DigitalOcean Kubernetes 集群,您的连接配置为kubectl默认设置。创建集群时,有关如何配置的说明kubectl显示在“连接到集群”步骤下。要在 DigitalOcean 上创建 Kubernetes 集群,请阅读Kubernetes 快速入门。 安装在本地机器上的 Helm 3 ..

Read more

作为Write for DOnations计划的一部分,作者选择了免费和开源基金来接受捐赠。 介绍 Apache Kafka是一种流行的分布式消息代理,旨在处理大量实时数据。Kafka 集群具有高度可扩展性和容错性。与ActiveMQ和RabbitMQ等其他消息代理相比,它还具有更高的吞吐量。尽管它通常用作发布/订阅消息系统,但许多组织也将其用于日志聚合,因为它为已发布的消息提供持久存储。 发布/订阅消息系统允许一个或多个生产者发布消息,而无需考虑消费者的数量或他们将如何处理消息。订阅的客户端会自动收到有关更新和新消息创建的通知。该系统比客户端定期轮询以确定是否有新消息可用的系统更有效和可扩展。 在本教程中,您将在 Ubuntu 20.04 上安装和使用 Apache Kafka 2.6.0。 先决条件 要继续,您将需要: 一台 Ubuntu 20.04 服务器和一个具有 sudo 权限的非 root 用户。如果您没有设置非 root 用户,请按照本指南中指定的步骤进行操作。 您的服务器上至少有 4GB 的 RAM。没有这么多 RAM 的安装可能会导致 Kafka 服务失败。 您的服务器上安装了OpenJDK 11。要安装此版本,请按照我们的教程如何在 Ubuntu 20.04 上使用 APT 安装 Java。Kafka 是用 Java 编写的,所以它需要一个 JVM。 第 1 步 – 为 Kafka 创建用户 因为 ..

Read more

作者选择了公共利益软件来接受捐赠,作为Write for DOnations计划的一部分。 介绍 ERPNext是一个企业资源规划 (ERP) 套件,它利用了开源技术的强大功能和灵活性。它擅长管理核心业务流程,例如财务、销售、人力资源、制造、采购、服务、服务台需求等。实施像 ERPNext 这样的系统的好处包括: 通过自动化重复的业务流程提高生产力 通过为公司内的所有部门共享数据库来提高 IT 效率 凭借对业务单位如何相互关联的整体愿景,做出更好的决策 ERPNext 基于Frappe,这是一个用Python编写的全栈 Web 应用程序框架,它充分利用了Node/JavaScript 运行时环境,并使用MariaDB作为其数据库后端。基于 Frappe 的应用程序(如 ERPNext)的众多优势之一是工作台命令行实用程序。bench CLI 通过自动执行安装、更新、配置和管理多个 Frappe/ERPNext 站点等任务,为管理员节省了时间。 在本教程中,您将在一台运行 Ubuntu 18.04 的服务器上安装和配置 ERPNext 堆栈。这将允许您根据需要为各种开发或生产环境配置堆栈,并为构建更复杂的容错架构做好准备。 先决条件 一台 Ubuntu 18.04 服务器,至少有 4 GB 的 RAM 和一个非 rootsudo用户。您可以按照Ubuntu 18.04 初始服务器设置指南设置您的服务器和用户。 注意:选择服务器规格时,请记住 ERP 系统是资源密集型的。本指南要求一台具有 4 GB RAM 的服务器,这对于基本用例来说已经足够了,但具体的硬件要求可能会因用户数量和您的业务规模而异。 带有 A 记录的完全注册的域名指向您的服务器。如果您使用的是 ..

Read more

作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 Elasticsearch是一个实时分布式搜索和分析数据的平台。它的流行是由于其易用性、强大的功能和可扩展性。 Elasticsearch 支持 RESTful 操作。这意味着您可以将 HTTP 方法(GET、POST、PUT、DELETE等)与 HTTP URI (/collection/entry) 结合使用来操作您的数据。直观的 RESTful 方法对开发人员和用户都很友好,这也是 Elasticsearch 受欢迎的原因之一。 Elasticsearch 是免费的开源软件,背后有一家可靠的公司——Elastic。这种组合使其适用于许多用例,从个人测试到企业集成。 本文将向您介绍 Elasticsearch,并向您展示如何安装、配置和开始使用它。 先决条件 要遵循本教程,您将需要以下内容: 一台运行 CentOS 7 的服务器,具有至少 1GB 的内存和非 root sudo 用户。有关详细说明,请查看我们的 CentOS 7 初始服务器设置指南 wget安装在您的服务器上 步骤 1 — 在 CentOS 7 上安装 Java Elasticsearch 是用 Java 编程语言编写的。那么,您的第一项任务是在您的服务器上安装 Java 运行时环境 (JRE)。您将为 JRE ..

Read more

作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 当用户执行单个Node.js程序时,它作为单个操作系统 (OS)进程运行,该进程代表正在运行的程序实例。在该过程中,Node.js 在单个线程上执行程序。正如本系列前面的How To Write Asynchronous Code in Node.js教程中提到的,因为只有一个线程可以运行在一个进程上,所以在JavaScript 中执行需要很长时间的操作会阻塞 Node.js 线程并延迟执行的其他代码。解决此问题的关键策略是启动子进程或由另一个进程创建的进程,当面临长时间运行的任务时。当启动一个新进程时,操作系统可以采用多处理技术来确保主 Node.js 进程和附加子进程并发或同时运行。 Node.js 包含child_process模块,该模块具有创建新进程的功能。除了处理长时间运行的任务外,该模块还可以与操作系统交互并运行shell命令。系统管理员可以使用 Node.js 运行 shell 命令来构建和维护作为Node.js 模块而不是shell 脚本的操作。 在本教程中,您将在执行一系列示例 Node.js 应用程序的同时创建子进程。您将创建与流程child_process通过经检索子过程的结果模块缓冲区或字符串的exec()函数,然后从与数据流spawn()功能。最后,您将使用fork()创建另一个 Node.js 程序的子进程,您可以在它运行时与之通信。为了说明这些概念,您将编写一个列出目录内容的程序、一个查找文件的程序以及一个具有多个端点的 Web 服务器。 先决条件 您必须安装 Node.js 才能运行这些示例。本教程使用版本 10.22.0。要在 macOS 或 Ubuntu 18.04 上安装它,请按照如何在 macOS 上安装 Node.js 和创建本地开发环境或如何在 Ubuntu 18.04 上安装 Node.js 的使用 PPA 安装部分中的步骤进行操作。 ..

Read more

介绍 iptables 是一种防火墙,在大多数 Linux 系统的网络安全中起着至关重要的作用。虽然许多 iptables 教程将教您如何创建防火墙规则来保护您的服务器,但本教程将侧重于防火墙管理的不同方面:列出和删除规则。 在本教程中,我们将介绍如何执行以下 iptables 任务: 列出规则 清除数据包和字节计数器 删除规则 刷新链(删除链中的所有规则) 刷新所有链表,删除所有链,接受所有流量 注意:使用防火墙时,请注意不要通过阻止 SSH 流量(默认为端口 22)将自己锁定在自己的服务器之外。如果您由于防火墙设置而无法访问,您可能需要通过带外控制台连接到它来修复您的访问。 先决条件 本教程假设您使用iptables安装了命令的 Linux 服务器,并且您的用户具有sudo权限。 如果您需要有关此初始设置的帮助,请参阅我们的Ubuntu 20.04 初始服务器设置指南。它也可用于Debian和CentOS 我们先来看看如何列出规则。有两种不同的方式可以查看您的活动 iptables 规则:在表格中或作为规则规范列表。这两种方法以不同的格式提供大致相同的信息。 按规格上市规则 要按规范列出所有活动的 iptables 规则,请运行iptables带有以下-S选项的命令: sudo iptables -S Output-P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -N ICMP -N TCP -N UDP -A INPUT -m conntrack ..

Read more

介绍 React Native Elements是一个样式库,具有基于React Native 组件构建的预构建组件。React Native Elements 中的每个组件都使用 React Native<View />组件包装,其样式基于您指定的道具。 React Native Elements 的主要目的是构建在基本的 React Native 组件之上,为您提供更大的灵活性和更轻松的主题化整个应用程序。如果您曾经为整个应用程序编写过 CSS,那么您可能已经找到了一些方法来节省自己的时间并编写一次而不是一遍又一遍。使用 React Native Elements 允许您使用预先构建的组件并自定义或扩展它们以重用相同的 props。 注意:在整篇文章中,我们将 React Native Elements 缩写为RNE。 在本文中,您将探索 React Native Elements 提供的一些组件。您将能够将在这里学到的知识应用到其他组件中。 先决条件 如果你想跟随这篇文章,你需要: Node.js 的本地开发环境。遵循如何安装 Node.js 并创建本地开发环境。 熟悉设置环境以创建新的 React Native 项目并使用 iOS 或 Android 模拟器可能会有所帮助。 熟悉在 React Native 中使用 JSX 语法。 ..

Read more

作者选择Internet Archive接收捐赠,作为Write for DOnations计划的一部分。 介绍 GoAccess是一种实时监控 Web 服务器日志的工具。它是用 C 语言编写的,它的仪表板界面使用流行的ncurses库,可以直接从命令行访问。 这很棒,因为您可以通过 SSH 连接到您控制的任何 Web 服务器,并快速安全地查看或分析相关统计数据。除了命令行仪表板界面,它还能够以其他格式(例如 HTML、JSON 和 CSV)显示统计信息,您可以在其他上下文中使用这些数据或与他人共享。 根据您的需要,GoAccess 也可以成为客户端分析工具的绝佳替代品。它直接分析您的服务器日志,因此您无需加载任何额外的脚本,您的数据完全在您的控制之下。 在本教程中,您将在 Ubuntu 20.04 Web 服务器上安装和配置 GoAccess for Apache。在查看命令行界面上的可用模块和导航快捷方式之前,您将使用 GoAccess 访问 Apache 日志文件。 先决条件 对于本教程,您将需要以下内容: 一台 Ubuntu 20.04 服务器。您可以按照Ubuntu 20.04 教程的初始服务器设置进行设置,包括具有 sudo 权限的非 root 用户和防火墙。 按照如何在 Ubuntu 20.04 上安装 Apache 安装 Apache。 第 1 步 – ..

Read more

Visual Studio Code 最令人印象深刻的部分之一是可定制性,尤其是通过扩展。随着大量开发人员创建扩展,功能几乎是无穷无尽的!以下是 VS Code 中用于编写 CSS 的一些最佳扩展。 查看学习 Visual Studio Code,了解您需要了解的有关 Web 开发中最热门的编辑器的所有信息! HTML CSS 支持 HTML CSS 支持(以及列出的下一个扩展)基于项目中包含或远程引用的 CSS在您的 HTML 文件中提供智能感知。这是功能的完整列表。 类属性补全 id 属性补全 支持 class 和 id 属性的 Zen Coding 完成 扫描工作区文件夹中的 css 和 scss 文件 支持远程css文件 关于这一点,真正突出的一件事是您也可以指定要缓存的远程 CSS 文件。您可以通过添加以下设置来做到这一点。此示例引用 Bootstrap 4 CSS 文件。 “css.remoteStyleSheets”: [ “https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css” ] CSS 类名称的智能感知 CSS ..

Read more