Let's Encrypt 配置Nginx SSL证书
以下文章展示了在 Ubuntu(以 20.04 为例)上,通过 APT 安装 Certbot 并使用 --nginx 插件,一步完成 Let’s Encrypt 证书的获取、安装与自动续期的全过程。全文共分为五大部分,每部分都配有实用命令示例和丰富引用,帮助您快速上手并在生产环境中稳定运行。 在本文...
来自 MMao 贡献者的精选知识。
以下文章展示了在 Ubuntu(以 20.04 为例)上,通过 APT 安装 Certbot 并使用 --nginx 插件,一步完成 Let’s Encrypt 证书的获取、安装与自动续期的全过程。全文共分为五大部分,每部分都配有实用命令示例和丰富引用,帮助您快速上手并在生产环境中稳定运行。 在本文...
Python 3.13.5 Pyarmor 9.1.8 (trial) 一、背景与目标 在向多家企业交付 FastAPI 服务时,我们既要保护源码避免泄露,又要灵活控制授权(机器绑定 + 到期)。PyArmor 8.5+ 的 外置许可证(Runtime Key) 机制可以让我们 一次混淆代码、多次下...
在flask项目中,一般都配置了CSRF,表单提交时,带上csrf_token字段即可,如果是ajax方式提交,需要设置csrf_token const csrfToken = $('meta[name=csrf-token]').attr('content'); const postData = ...
在Spring Security中,permitAll和anonymous是两个用于配置安全策略的表达式,它们用于定义对特定资源的访问权限。虽然它们在某些情况下可能产生类似的行为,但它们的意图和用途是不同的。 permitAll 含义: permitAll用于指定某个资源是完全开放的,不需要任何安全...
如何使用 qpdf 工具消除 PDF 文件的权限限制 PDF 文件是一种常见的文档格式,广泛用于电子书、手册、合同等多种场景。为了保护文件的版权或避免内容被非法复制,许多 PDF 文件会设置权限限制,如禁止复制、打印或编辑。这些限制通常通过 PDF 的加密机制实现。qpdf 是一个开源工具,可以用来...
vim中可用 :s 命令替换字符串 语法: [addr]s/源字符串/目的字符串/[option] [addr] 表示检索范围,省略时表示当前行 [option] 表示操作类型 替换所有行中所有的str1为str2,%表示整个文件 :%s/str1/str2/g 替换当前行第一个str1为str2 ...
defaultdict 是 Python 的 collections 模块中的一个工具,它是 dict 的子类,但与普通的字典不同,它在访问不存在的键时会自动为该键生成一个默认值,而不是抛出 KeyError。 defaultdict 基本用法 导入和创建 from collections impo...
Redis报错了 too many open files 这时候应该通过redis-cli SHUTDOWN停止不掉redis-server,因为connect refuse 可以直接kill掉进程 查看PID ps -e | grep redis 杀死进程 kill -9 PID 杀死进程后,通过...
1. 线程池简介 在现代编程中,尤其是进行高性能和高并发编程时,线程池是一种非常重要的技术。线程池可以有效地管理和复用线程资源,提高程序的执行效率和响应速度。接下来,我们将详细介绍线程与进程的区别,什么是线程池,以及线程池的优势。 1.1 线程与进程的区别 在计算机科学中,线程和进程是两个基本的并发...
关键词:LRU、缓存、性能优化、纯函数、可哈希、装饰器顺序、TTL、异步缓存、工程实践 为什么要关心 lru_cache? 当你的函数计算昂贵、参数重复且没有副作用时,缓存返回值会显著降低延迟、减少 CPU 消耗。functools.lru_cache 是 Python 标准库自带的“轻量级、进程内...
Batch API 适用于无需即时反馈但需要处理大量请求的场景。以下是一些典型的任务和最佳实践提示,帮助您更好地使用 Batch API 关键信息提取 处理和分析大量文档,如:论文摘要生成、招投标信息提取等。 角色:你是一个专业的文本信息提取器。 需要提取的【文本】: """ {正文} """ 任务...
在Ubuntu 20.04上添加swap交换空间 参考连接 https://blog.csdn.net/sxf1061700625/article/details/125781709 swap是物理RAM内存已满时使用的磁盘空间。 当Linux系统用完RAM时,非活动页面将从RAM移动到交换空间。 ...
Python 的解包操作符 (用于列表、元组等序列)和 *(用于字典)可以用于多种场景。它们使得代码更简洁、灵活,并且提高了可读性。下面我会列举出几个常见的使用场景。 1. 函数参数中的解包(args 和 kwargs) 使用 * 解包列表/元组作为位置参数: 在定义函数时,*args 用于收集额外...
Portainer 是一个轻量级且直观的开源容器管理工具,专为简化和管理 Docker 和 Kubernetes 环境而设计。它提供了一个用户友好的图形界面,使用户能够方便地管理容器、镜像、网络和卷。 通过docker安装portainer。 portainer/portainer-ce:alpin...
Anaconda conda与pip pip是python包的通用管理器,而conda是一个与语言无关的跨平台环境管理器。最显着的区别可能是这样的:pip在任何环境中安装python包,conda安装在conda环境中装任何包。因此往往conda list的数量会大于pip list。 要注意的是,...
iptables iptables/ip6tables命令,用于在Linux内核中设置、维护和检查IPv4和IPv6数据包过滤规则的表,从而实现IPv4/IPv6数据包过滤和NAT的管理工具。它可以定义多个不同的表,每个表中包含多个预定义的链,也可能包含用户自定义的链。每个链都是一个规则列表,用来匹...
前言 触发器(TRIGGER)是由事件来触发某个操作。这些事件包括insert语句、update语句和delete语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。 一、创建触发器 触发器是由insert、update和delete等事件来触发某种特定操作。满足触发器的触发条件时,数据...
系统 Ubuntu 20.04.6 Redis 5.0.7 现象: Redis每隔1分钟或者2分钟会自动重启,日志(/var/log/redis/redis-server.log)如下 signal-handler (1710819652) Received SIGTERM scheduling s...
有一个较大的SQL文件,通过source命令导入到MySQL数据库中时导入太慢。 存储引擎选择的时Innodb MySQL版本为8.0.34 解决办法 1.设置ulimit ulimit -n //默认是1024 指定同一时间最多可开启的文件数 65535 vim /etc/security/lim...
如果要在 FastAPI 项目中统一地处理模型序列化以自动排除所有 None 值,可以通过自定义响应处理来实现。 这里提供一种方法,通过自定义 FastAPI 的 JSONResponse 来统一排除模型中的 None 值: 方法 步骤 1: 创建一个自定义的 JSON 响应类 创建一个继承自 fa...