介绍 Let’s Encrypt 是一个证书颁发机构 (CA),它提供了一种简单的方法来获取和安装免费的TLS/SSL 证书,从而在 Web 服务器上启用加密的 HTTPS。它通过提供软件客户端 Certbot 来简化流程,该客户端尝试自动执行大部分(如果不是全部)所需步骤。目前,获取和安装证书的整个过程在 Apache 和 Nginx 上都是完全自动化的。 在本教程中,您将使用 Certbot 在 Ubuntu 20.04 上为 Nginx 获取免费的 SSL 证书,并将您的证书设置为自动续订。 本教程将使用单独的 Nginx 服务器配置文件而不是默认文件。我们建议为每个域创建新的 Nginx 服务器块文件,因为它有助于避免常见错误并将默认文件保留为后备配置。 先决条件 要学习本教程,您需要: 按照Ubuntu 20.04教程的初始服务器设置设置一个 Ubuntu 20.04 服务器,包括启用 sudo 的非root用户和防火墙。 一个注册的域名。本教程将example.com贯穿始终。你可以购买一个域名Namecheap,免费获得一个与Freenom,或使用你选择的域名注册商。 为您的服务器设置的以下两个 DNS 记录。如果您使用的是 DigitalOcean,请参阅我们的DNS 文档以了解有关如何添加它们的详细信息。 example.com指向您服务器的公共 IP 地址的 A 记录。 指向您服务器的公共 IP 地址的 A 记录。www.example.com ..
Category : 教程系列
介绍 在本文中,您将学习如何在 Express 中提供静态文件。作为 Node.js 框架,Express 可简化服务器中的数据,并包括在客户端呈现静态文件,例如图像、HTML、CSS 和 JavaScript。 如果您不熟悉 Express,请查看我们的Express 简介以了解基础知识。 先决条件 要完成本教程,您将需要以下内容: 建议但不要求了解 Node.js。如果您想了解有关 Node.js 的更多信息,请查看如何在 Node.js 中编码系列。 由于 Express 是一个 Node.js 框架,因此在执行后续步骤之前,请确保您已从 Node.js 安装了Node.js。 步骤 1 — 设置 Express 首先,在终端中运行以下命令: 为您的项目创建一个名为 的新目录express-static-file-tutorial: mkdir express-static-file-tutorial 切换到新目录: cd express-static-file-tutorial 使用默认值初始化一个新的 Node 项目。这将设置一个package.json文件来访问您的依赖项: npm init -y 创建您的入口文件,index.js. 这是您将存储 Express 服务器的位置: touch index.js 安装 Express 作为依赖项: ..
作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 在某些时候,您可能会发现自己所处的网络不安全或防火墙过于严格,您需要确保没有人在监视您的流量。一种解决方案是使用 VPN,但许多 VPN 需要在您的计算机上安装特殊的客户端软件,您可能无权安装这些软件。但是,如果您只需要确保您的网页浏览安全,那么有一个快速、免费且有用的替代方案:SOCKS 5 代理隧道。 SOCKS 代理是一个 SSH 加密隧道,在其中配置的应用程序向下转发其流量,然后在服务器端,代理将流量转发到一般 Internet。与 VPN 不同,SOCKS 代理必须在客户端机器上逐个应用程序进行配置,但只要应用程序能够使用 SOCKS 代理,您就可以在没有任何专业客户端软件的情况下设置应用程序。在服务器端,您只需要配置 SSH。 在本教程中,您将使用运行 Ubuntu 20.04 的服务器(尽管您可以通过 SSH 访问任何 Linux 发行版),并使用 Firefox Web 浏览器作为客户端应用程序。在本教程结束时,您将能够通过加密的 SSH 隧道安全地浏览网站。 先决条件 运行 Ubuntu 20.04(其他发行版也可以)的 Linux 服务器,具有sudo用户和 SSH 访问权限。要进行设置,您可以按照我们的 Ubuntu 20.04 初始服务器设置教程进行操作。去这里在 DigitalOcean Droplet 上建立你的隧道。 使用 SOCKS 代理配置的应用程序,例如Firefox Web 浏览器。 对于 ..
该系列的一部分: 常见的 HAProxy 错误 本教程系列介绍了如何对您在使用HAProxy TCP 和 HTTP 代理服务器时可能遇到的一些最常见错误进行故障排除和修复。 本系列中的每个教程都包含对常见 HAProxy 配置、网络、文件系统或权限错误的描述。该系列首先概述了可用于对 HAProxy 进行故障排除的命令和日志文件。后续教程详细检查特定错误。 介绍 HAProxy 代表高可用性代理,是一种广泛使用的基于 TCP 和 HTTP 的代理服务器,可在 Linux、Solaris 和 FreeBSD 上运行。它用于通过在多个服务器之间分发请求来平衡应用程序,并确保应用程序对用户具有高可用性。 默认情况下,在许多 CentOS 8 安装中,HAProxy 未配置为将其日志输出写入文件。本快速入门教程将解释如何通过使用 Unix 域套接字来使用 Rsyslog 配置 HAProxy 日志记录以实现可靠性、速度和安全性。 先决条件 要完成本教程,您需要一台运行 CentOS 8 的服务器。该服务器应具有具有管理权限的非 root 用户。要进行设置,请遵循CentOS 8教程的初始服务器设置指南。 步骤 1 — 安装和启用 HAProxy 要安装 HAProxy,请运行以下dnf命令: sudo dnf install haproxy ..
介绍 使用 Nginx Web 服务器时,服务器块(类似于 Apache 中的虚拟主机)可用于封装配置细节并在一台服务器上托管多个域。 在本指南中,我们将讨论如何在 Ubuntu 16.04 服务器上的 Nginx 中配置服务器块。 先决条件 sudo在本教程中,我们将使用具有特权的非 root 用户。如果您没有配置这样的用户,您可以按照我们的Ubuntu 16.04 初始服务器设置指南创建一个。 您还需要在服务器上安装 Nginx。以下指南涵盖了此过程: 如何在 Ubuntu 16.04 上安装 Nginx:使用本指南自行设置 Nginx。 如何在 Ubuntu 16.04 中安装 Linux、Nginx、MySQL、PHP(LEMP 堆栈):如果您将 Nginx 与 MySQL 和 PHP 结合使用,请使用本指南。 满足这些要求后,您可以继续阅读本指南。 示例配置 出于演示目的,我们将使用 Nginx 服务器设置两个域。我们将在本指南中使用的域名是example.com和test.com。 注意:有关使用 DigitalOcean 设置域的更多信息,请参阅我们的域和 DNS 产品文档。 如果您没有两个备用域名可供使用,请暂时使用占位符名称,稍后我们将向您展示如何配置本地计算机以测试您的配置。 步骤 1 — 设置新的文档根目录 默认情况下,Ubuntu ..
介绍 SimpleSAMLphp是一个开源 PHP 身份验证应用程序,它支持作为服务提供者 (SP) 或身份提供者 (IdP) 的SAML 2.0。 SAML(安全断言标记语言)是一种基于 XML 的安全通信机制,用于在组织和应用程序之间交换身份验证和授权数据。它通常用于实现 Web SSO(单点登录)。这消除了在多个组织中维护多个身份验证凭据的需要。简而言之,您可以使用一个身份(如用户名和密码)访问多个应用程序。 SimpleSAMLphp 的一个实例连接到一个身份验证源,它是一个身份提供者,如 LDAP 或用户数据库。在授予对链接服务提供商提供的资源的访问权限之前,它根据此身份验证源对用户进行身份验证。 在本教程中,您将安装 SimpleSamlPHP 并将其配置为使用 MySQL 数据库作为身份验证源。您将在 MySQL 数据库中存储用户和加密密码,并测试您是否可以使用这些用户登录。 先决条件 按照Ubuntu 18.04 初始服务器设置指南设置一台 Ubuntu 18.04 服务器,包括一个 sudo 非 root 用户和一个防火墙。 按照如何在 Ubuntu 18.04 上安装 Linux、Apache、MySQL、PHP(LAMP 堆栈)在服务器上安装 Apache、MySQL 和 PHP。 配置为指向您的服务器的域名。您可以按照如何从公共域注册商指向 DigitalOcean 域名服务器教程学习如何将域指向 DigitalOcean Droplets 。 使用ServerName指令为域配置的虚拟主机。按照如何在 Ubuntu 18.04上设置Apache 虚拟主机为您的域名设置一个。 ..
介绍 MariaDB是一个开源数据库管理系统,通常用作流行LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆栈的 MySQL 部分的替代方案。它旨在成为 MySQL 的替代品。 本安装指南的简短版本包括以下三个步骤: 使用更新您的包索引 apt 安装mariadb-server使用包apt。该软件包还引入了与 MariaDB 交互的相关工具 运行包含的mysql_secure_installation安全脚本以限制对服务器的访问 sudo apt update sudo apt install mariadb-server sudo mysql_secure_installation 本教程将解释如何在 Ubuntu 18.04 服务器上安装 MariaDB,并验证它是否正在运行并具有安全的初始配置。 先决条件 要学习本教程,您需要: 按照此初始服务器设置指南设置一台 Ubuntu 18.04 服务器,包括具有特权和防火墙的非root用户sudo。 第 1 步 – 安装 MariaDB 在 Ubuntu 18.04 上,MariaDB 10.1 版默认包含在 APT 包存储库中。 要安装它,请使用以下命令更新服务器上的包索引apt: sudo apt update 然后安装包: sudo apt install ..
介绍 Redis是一种开源的内存键值数据存储。无论您是在本地安装 Redis 还是使用远程实例,您都需要连接到它才能执行大多数操作。在本教程中,我们将介绍如何从命令行连接到 Redis,如何验证和测试您的连接,以及如何关闭 Redis 连接。 如何使用本指南 本指南编写为带有独立示例的备忘单。我们鼓励您跳到与您要完成的任务相关的任何部分。 本指南中显示的命令在运行 Redis 版本4.0.9的 Ubuntu 18.04 服务器上进行了测试。要设置类似的环境,您可以按照我们关于如何在 Ubuntu 18.04 上安装和保护 Redis 的指南的步骤 1。我们将通过使用Redis 命令行界面运行这些命令来演示这些命令的行为。请注意,如果您使用不同的 Redis 接口——例如Redli——某些命令的确切输出可能会有所不同。redis-cli 或者,您可以配置一个托管的 Redis 数据库实例来测试这些命令,但请注意,根据您的数据库提供商允许的控制级别,本指南中的某些命令可能无法按所述方式工作。要配置 DigitalOcean 托管数据库,请遵循我们的托管数据库产品文档。然后,您必须 安装 Redli 或 设置 TLS 隧道,以便通过 TLS 连接到托管数据库。 连接到Redis 如果您已经redis-server 在本地安装,则可以使用以下redis-cli命令连接到 Redis 实例: redis-cli 这将带您进入redis-cli的交互模式,该模式为您提供读取-评估-打印循环(REPL),您可以在其中运行 Redis 的内置命令并接收回复。 在交互模式下,您的命令行提示符将更改以反映您的连接。在本示例和本指南的其他示例中,提示表示连接到本地托管的 Redis 实例 ( 127.0.0.1) 并通过 Redis 的默认端口 ( ..
作者选择Code Org接受捐赠,作为Write for DOnations计划的一部分。 介绍 计算机视觉是计算机科学的一个子领域,旨在从图像和视频中提取更高层次的理解。这为有趣的视频聊天过滤器、移动设备的面部验证器和自动驾驶汽车等技术提供支持。 在本教程中,您将使用计算机视觉为您的网络摄像头构建美国手语翻译器。在学习本教程时,您将使用OpenCV计算机视觉库PyTorch来构建深度神经网络并onnx导出神经网络。在构建计算机视觉应用程序时,您还将应用以下概念: 您将使用与如何应用计算机视觉来构建基于情感的狗过滤器教程相同的三步法:预处理数据集、训练模型和评估模型。 您还将扩展这些步骤中的每一个:使用数据增强来解决旋转或不居中的手,更改学习率计划以提高模型准确性,并导出模型以加快推理速度。 在此过程中,您还将探索机器学习中的相关概念。 在本教程结束时,您将拥有美国手语翻译器和基础深度学习知识。您还可以访问此项目的完整源代码。 先决条件 要完成本教程,您将需要以下内容: 具有至少 1GB RAM 的 Python 3 本地开发环境。您可以按照如何为 Python 3 安装和设置本地编程环境来配置您需要的一切。 用于实时图像检测的工作网络摄像头。 (推荐)构建基于情感的狗过滤器;本教程没有明确使用,但同样的想法得到了加强和构建。 第 1 步 – 创建项目并安装依赖项 让我们为这个项目创建一个工作区并安装我们需要的依赖项。 在 Linux 发行版上,首先准备系统包管理器并安装 Python3 virtualenv 包。用: apt-get update apt-get upgrade apt-get install python3-venv 我们将调用我们的工作区SignLanguage: mkdir ~/SignLanguage 导航到SignLanguage目录: cd ~/SignLanguage 然后为项目创建一个新的虚拟环境: python3 -m venv signlanguage ..
介绍 拖放是一种常见的用户交互,您可以在许多图形用户界面中找到它。 已有 JavaScript 库可用于向您的应用程序添加拖放功能。但是,可能存在库不可用或引入项目不需要的开销或依赖项的情况。在这些情况下,了解现代 Web 浏览器中可用的 API 可以提供替代解决方案。 该HTML拖放API依赖于DOM的事件模型我们就可以得到被拖动或下降,以更新拖动或丢弃元素信息。使用 JavaScript 事件处理程序,您可以将任何元素变成可拖动的项目或可以放入的项目。 在本教程中,我们将使用 HTML Drag and Drop API 和 vanilla JavaScript 构建一个拖放示例,以使用事件处理程序。 先决条件 要完成本教程,您需要: 支持拖放 API(Chrome 4+、Firefox 3.5+、Safari 3.1+、Edge 18+)的现代 Web 浏览器。 步骤 1 — 创建项目和初始标记 我们的项目将包含一个容器,其中包含两种类型的子元素: 可以拖动的子元素 可以将元素放入其中的子元素 首先,打开终端窗口并创建一个新的项目目录: mkdir drag-and-drop-example 接下来,导航到该目录: cd drag-and-drop-example 然后,index.html在该目录中创建一个文件: nano index.html 接下来,为 HTML 网页添加样板代码: 索引.html <!DOCTYPE html> <html> ..