Y9000P + ubuntu22.04 配置Anaconda+pycharm +pytorch
Anaconda3 的安装及使用方法
安装 Anaconda3
Anaconda3 是 Anaconda 的具体版本
Anaconda3 中的 Python 解释器默认使用的是 Python3.x 版本,而不是 Python2.x 版本
Python2.x 版本中,字符串是以 ASCII 编码处理的,而在 Python3.x 版本中,字符串是以 Unicode 编码处理的
安装 Anaconda 的最佳方法是下载最新的安装程序 bash 脚本, 然后运行它
Free Download | Anaconda
如果下载速度太慢的话,也可以通过清华大学开源软件镜像站下载
Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
进入安装脚本所在的目录,运行它
bash Anaconda3-2023.09-0-Linux-x86_64.sh
一路回车和 yes
最后选择安装位置,我这里选择默认
安装过程中系统PATH有变动,需要source一下
source ~/.bashrc
此时命令行前会出现 (bash) 字样,这是因为安装过程中在PATH中添加了conda初始化代码,自动激活了 base 环境
所以这里就直接进入了 Conda 的 base 环境,换一个终端也还是激活状态,比较烦人…
base 环境是 Anaconda 安装时自动创建的默认环境
这个环境中包含了 Anaconda 中的 Python 解释器和一些核心库,如 NumPy、Matplotlib 等
除了 base 环境之外,你应该创建其他的 Conda 环境,每个环境互相独立,都是一个独立的 Python 运行环境,可以包含不版本的 Python 解释器和其他库
禁止Conda 自动激活 base 环境
输入以下指令,然后重启终端即可
conda config --set auto_activate_base false
如果再想进入 base 环境,只需要手动激活即可,不过只对当前终端有效
conda activate base
虚拟环境中的 Python 解释器版本和 Ubuntu22.04 自带的版本并不一致
验证 Anaconda 是否安装成功
conda --version# 列出当前激活环境(没激活的话,默认是 base 环境)中安装的所有包以及Python解释器
conda list
常用的 Conda 命令
- 配置 conda 镜像源
创建虚拟环境的时候,下载太慢了,老出问题
换成国内的源
# 查看当前镜像源
conda config --show channels# 添加清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main# 从channel中安装包时显示channel的url,这样就可以知道包的安装来源
conda config --set show_channel_urls yes # 清除索引缓存,保证用的是镜像站提供的索引
conda clean -i
或者直接修改 ~/.condarc(最强硬)
sudo gedit ~/.condarc
文本替换成下面的内容
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free- defaults
auto_activate_base: false
show_channel_urls: true
- 虚拟环境管理
注意:我们可以将前面带有两个短线(–)的常用命令进行缩写(并不是所有的都可以缩写)
方法:是取一个短线和选项的首字母
例1:–name 可以缩写成 -n
例2:–envs 可以缩写成 -e
# 列出所有已创建的 Conda 虚拟环境及其信息,包括环境名称、路径、Python解释器的版本
conda info --envs# 创建虚拟环境
conda create --name <虚拟环境名># 创建虚拟环境 + 指定Python解释器的版本为3.7
conda create --name <虚拟环境名> python=3.7# 创建虚拟环境 + 指定Python解释器的版本为3.7 + 指定虚拟环境路径
# 如果不手动指定安装路径的话,虚拟环境默认安装在 /home/yao/anaconda3/envs (除了 base 环境)
conda create --prefix /path/to/envs --name <虚拟环境名> python=3.7# 激活虚拟环境,使环境中的Python解释器和库可用
conda activate <虚拟环境名># 退出虚拟环境
conda deactivate# 删除虚拟环境(包括环境中的所有包和文件)
conda remove --name <虚拟环境名> --all
我这里新建了一个虚拟环境 myEnv,Python解释器版本选择 3.7
虚拟环境中的 Python 解释器被安装在 bin 目录下
这点很重要,后面用 Pycharm 创建项目需要选上
包管理
# 安装包
# pip install PackageName # 用 pip 安装 也可以
conda install PackageName# 安装多个包
conda install PackageName1 PackageName2 ...# 安装包并指定版本号
# pip install PackageName==版本号 # 注意这里是两个等号
conda install PackageName=版本号 # 注意这里是一个等号# 卸载包
conda remove PackageName# 更新包
conda update PackageName# 更新环境中的所有包
conda update --all# 列出已安装的包
conda list# 搜寻包
conda search PackageName
Pycharm 的安装及使用方法
安装 Pycharm
- Pycharm 下载
下载免费的社区版即可
专业版需要激活
解压缩
tar -xvf pycharm-professional-2023.2.2.tar.gz# 然后把解压缩文件复制到家目录
mv pycharm-community-2023.2.2 ~
进入 Pycharm 目录下的 bin 目录,然后运行安装脚本
cd ~/pycharm-community-2023.2.2/bin
sh ./pycharm.sh
选择 Continue
在打开 Pycharm 启动页面后,在左下角的 configure 选项中选择 ”Create Desktop Entry “ 创建桌面快捷方式
汉化
- 打开 Pycharm,找到 Plugins,搜索 Chinese,然后安装中文语言包
卸载 Pycharm
上文已经提到所有的程序相关文件都保存在了 /home/yao/pycharm-community-2023.2.2 目录下
配置信息文件是在/home/yao/.config/JetBrains 下的 PyCharmCE2023.2 目录中
缓存文件是在/home/yao/.cache/JetBrains 下的 PyCharmCE2023.2 目录中
Pycharm 和 Anaconda 关联
4.1 新建项目,选择已有的 Conda 环境
打开 Pycharm
新建一个项目,起名 testProject
然后可以选择我们之前创建好的虚拟环境(也可以自己新建一个 Conda 虚拟环境)
这里就会自动选上 Conda 虚拟环境中的 Python解释器
在这里插入图片描述
4.2 更换 Conda 环境
后面要修改的话,就直接 文件
— 设置
– 项目:XXX
– Python 解释器
Python 控制台:启动 Python 解释器,进入交互式 Python 环境
在这个环境中,你输入 Python 代码会被立即执行,便于代码调试
5. 在 Conda 环境中安装 Pytorch 和 torchvision
5.1 Pytorch 和 torchvision 简介
Pytorch:是一个非常 NB 的开源机器学习库,用于构建深度学习模型
torchvision:是 Pytorch 的一个扩展包,提高了一系列用于处理图像和视频数据的功能,包括数据加载、预处理、数据转换、模型定义和评估等
5.2 必须与 Python 解释器兼容
Pytorch、torchvision 版本必须和 Python 解释器版本 兼容
5.3 必须与 CUDA 版本对应
Pytorch、torchvision 版本必须和你的 CUDA 版本 对应起来!!!
推荐去官网:根据版本选择安装指令
可以选择 Conda 或者 Pip 安装,这是两个不同的包管理器,都可以用,不过指令略有不同
我的 Ubuntu系统中没装 Pip,但是Conda 的虚拟环境中预装了 Pip,所以可以在激活的环境中使用
但是我这里安装的是 CUDA 11.7,所以我只能安装 CUDA 11.7 及以下的版本的 Pytorch 包,得去找历史版本
历史版本
例如:Pytorch 版本 2.0.1 ,支持 CUDA 11.7
通过 conda 安装
-c pytorch
和 -c nvidia
中的 c 表示 channel,指定了软件包的来源,分别是 Pytorch 和 NVIDIA 的 conda 仓库,所以很有可能会出现安装非常缓慢的情况
可以选择国内的镜像源来下载
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/- defaults
auto_activate_base: false
show_channel_urls: true
如果配置了国内镜像源,安装时把 -c pytorch
和 -c nvidia
删掉即可
- 通过 pip 安装
直接输指令即可
5.4 安装 & 冲突解决
- 用 conda 安装
# 新建一个虚拟环境,选择 Python 解释器版本为 3.9
conda create --name myEnv39 python=3.9# 激活创建好的环境,否则会安装到默认的 base 环境中
conda activate myEnv39# 安装
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7# 查看已安装的包
conda list# 退出虚拟环境
conda deactivate# 删除虚拟环境(包括环境中的所有包和文件)
conda remove --name myEnv39 --all
一堆冲突!!!
(myEnv39) yao@myUbuntu:~$ conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7
Collecting package metadata (current_repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Solving environment: \
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:Specifications:- torchaudio==2.0.2 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.5,<3.6.0a0|3.4.*']Your python: python=3.9If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.The following specifications were found to be incompatible with each other:Output in format: Requested package -> Available versionsPackage pytorch-cuda conflicts for:
torchvision==0.15.2 -> pytorch==2.0.1 -> pytorch-cuda[version='>=11.6,<11.7|>=11.7,<11.8|>=11.8,<11.9|>=12.1,<12.2']
torchvision==0.15.2 -> pytorch-cuda[version='11.7.*|11.8.*']
torchaudio==2.0.2 -> pytorch==2.0.1 -> pytorch-cuda[version='>=11.7,<11.8|>=11.8,<11.9']
pytorch==2.0.1 -> pytorch-cuda[version='>=11.7,<11.8|>=11.8,<11.9']
torchaudio==2.0.2 -> pytorch-cuda[version='11.7.*|11.8.*']Package pytorch conflicts for:
torchvision==0.15.2 -> pytorch==2.0.1
torchaudio==2.0.2 -> pytorch==2.0.1Package openblas conflicts for:
torchaudio==2.0.2 -> numpy[version='>=1.11'] -> openblas[version='0.2.14|0.2.19']
torchvision==0.15.2 -> numpy[version='>=1.11'] -> openblas[version='0.2.14|0.2.19']Package typing conflicts for:
torchvision==0.15.2 -> pytorch -> typing
pytorch==2.0.1 -> typing_extensions -> typing[version='>=3.7.4']Package _libgcc_mutex conflicts for:
python=3.9 -> libgcc-ng[version='>=11.2.0'] -> _libgcc_mutex[version='*|0.1',build=main]
torchvision==0.15.2 -> libgcc-ng[version='>=11.2.0'] -> _libgcc_mutex[version='*|0.1',build=main]
pytorch==2.0.1 -> _openmp_mutex -> _libgcc_mutex[version='*|0.1',build=main]The following specifications were found to be incompatible with your system:- feature:/linux-64::__cuda==12.2=0- feature:/linux-64::__glibc==2.35=0- feature:|@/linux-64::__cuda==12.2=0- feature:|@/linux-64::__glibc==2.35=0- pytorch==2.0.1 -> __cuda[version='>=11.8']- pytorch==2.0.1 -> libgcc-ng[version='>=11.2.0'] -> __glibc[version='>=2.17']- torchaudio==2.0.2 -> pytorch==2.0.1 -> __cuda[version='>=11.8']- torchvision==0.15.2 -> libgcc-ng[version='>=11.2.0'] -> __glibc[version='>=2.17']- torchvision==0.15.2 -> pytorch==2.0.1 -> __cuda[version='>=11.8']Your installed version is: 12.2
冲突好像是因为用了国内源,换成用 -c pytorch
和 -c nvidia
从官网下载就可以安葬,不会有这些冲突
但速度很慢,最后会因为超时而结束(可以把代理关了,速度会提升
)
网上搜了一下conda 只适合用来环境隔离!作为 virtualenv 的上位替代品!
建议用 conda 创建空的 env,然后用 pip 进行各种 package 的安装
- 用 pip 安装
可以先配置一下清华源(但对我好像没啥用)
# 激活环境
conda activate myEnv39# 永久修改
pip config set global.index-url http://pypi.tuna.tsinghua.edu.cn/simple# 检查是否配置成功
pip config get global.index-url
或者直接修改配置文件
sudo gedit ~/.config/pip/pip.conf
添加文本
[global]
index-url = http://pypi.tuna.tsinghua.edu.cn/simple
然后就可以去安装了
注意把后面的 --index-url https://download.pytorch.org/whl/cu117
删了
不然会覆盖你配置文件中设置的默认源
# CUDA 11.7
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2# 消除警告
pip --trusted-host pypi.tuna.tsinghua.edu.cn install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2
清华源中,没有这个版本!也可能是开了代理,关闭代理重启电脑再试试看
换成 pytorch 1.10.0 试试看
但只能找到支持 CUDA 11.1 的,我的 CUDA 11.7 应该能向下兼容,先装了再说
# CUDA 11.1
pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html# 消除警告
pip --trusted-host pypi.tuna.tsinghua.edu.cn install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html# 检查是否安装成功
conda list
度还挺快的!但貌似添加的清华源没起到一点作用!!还是从 -f 附加的包索引源下载!!很迷
删掉 -f 附加的包索引源,再试一次
还是会报错,找不到符合的 torch 很迷
ERROR: Could not find a version that satisfies the requirement torch==1.10.0+cu111 (from versions: none)
ERROR: No matching distribution found for torch==1.10.0+cu111
总结:关闭代理!!!!!!
原文链接:
二十一、Ubuntu22.04 配置 Anaconda + Pycharm + Pytorch_ubuntu安装anaconda和pycharm-CSDN博客
相关文章:

Y9000P + ubuntu22.04 配置Anaconda+pycharm +pytorch
Anaconda3 的安装及使用方法安装 Anaconda3 Anaconda3 是 Anaconda 的具体版本 Anaconda3 中的 Python 解释器默认使用的是 Python3.x 版本,而不是 Python2.x 版本 Python2.x 版本中,字符串是以 ASCII 编码处理的,而在 Python3.x 版本中&am…...
使用Ubuntu编译FFmpeg生成Android动态库/静态库
环境 我这里使用windows里的wsl2的ubuntu,使用物理机或者vmware,vbox之类的安装的ubuntu理论上也可以. gcc编译使用的环境如下: Ndk使用17 FFmpeg使用4.0.2. clang编译使用的环境如下: Ndk使用21.4 FFmpeg使用6.1 FFmpeg下载地址:https://ffmpeg.org/…...

【AIGC-图片生成视频系列-2】八仙过海,各显神通:AI生成视频相关汇总剖析
最近「图片生成视频系列」层出不穷,我拜读并结合实践(对,就是手撕代码,有开源就撕),并对以下几篇文章的相似点以及关键点稍微做个总结: 一. 生成视频中图像的一致性 在图像生成视频的这个过程…...

SpringBoot集成RabbitMq消息队列【附源码】
1. 项目背景 要啥项目背景,就是干!!! SpringBoot版本:2.7.12 2. Rabbit MQ安装 这里讲解使用docker安装RabbitMQ,如果在windows下面安装RabbitMQ,参考下文 【笑小枫的按步照搬系列】Window…...

MySQL数据库的安装与环境配置
下载 下载MySQL8 安装 解压 配置MySQL环境变量 系统环境变量path D:\ProgramFiles\mysql-8.0.20-winx64\bin 1.点击属性 2.点击高级系统设置 3.点击环境变量 4.在系统变量中找到path 注意这里不是用户变量 5.新建后输入解压的地址 MySQL初始化和启动 以管理员身份运行cmd…...

【广州华锐互动】VR科技科普展厅平台:快速、便捷地创建出属于自己的虚拟展馆
随着科技的不断进步,虚拟现实(VR)技术已经在许多领域取得了显著的成果。尤其是在展馆设计领域,VR科技科普展厅平台已经实现了许多令人瞩目的新突破。 VR科技科普展厅平台是广州华锐互动专门为企业和机构提供虚拟展馆设计和制作的在线平台。通过这个平台&…...

XML Extension Supplement
LEGAL ISSUES, COMPANY POLICIES AND STANDARDS Web Services A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. URI和URL URI,全称是统一资源标识符(Uniform Resource Ident…...

手拉手Springboot获取yml配置文件信息
环境介绍 技术栈 springboot3 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 17 Spring Boot 3.1.7 配置文件说明:启动配置文件优先级:properties高于yml 配置文件application.yml yml是 JSON 的超集,简洁而强大…...

行人重识别(ReID)基础知识入门
这里写目录标题 1、ReID技术概述1.1 基本原理1.2 实现流程1.3 重识别存在的技术挑战 2、训练数据格式介绍 1、ReID技术概述 1.1 基本原理 ReID,全称Re-identification,目的是利用各种智能算法在图像数据库中找到与要搜索的目标相似的对象。ReID是图像检…...

【音视频 ffmpeg 学习】 跑示例程序 持续更新中
环境准备 在上一篇文章 把mux.c 拷贝到main.c 中 使用 attribute(unused) 消除警告 __attribute__(unused)/** Copyright (c) 2003 Fabrice Bellard** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated docu…...
前端axios与python库requests的区别
当涉及到发送HTTP请求时,Axios和Python中的requests库都是常用的工具。下面是它们的详细说明: Axios: Axios是一个基于Promise的HTTP客户端,主要用于浏览器和Node.js环境中发送HTTP请求。以下是Axios的一些特点和用法࿱…...
达梦数据库文档
1:达梦数据库(DM8)简介 达梦数据库管理系统是武汉达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统目前最新的版本是8.0版本,简称DM8。 DM8是达梦公司在总结DM系列产品研发与应用经验的基础上…...

CorelDRAW2024新功能有哪些?CorelDRAW2024最新版本更新怎么样?
CorelDRAW2024新功能有哪些?CorelDRAW2024最新版本更新怎么样?让我们带您详细了解! CorelDRAW Graphics Suite 是矢量制图行业的标杆软件,2024年全新版本为您带来多项新功能和优化改进。本次更新强调易用性,包括更强大…...

基于Mapify的在线艺术地图设计
地图是传递空间信息的有效载体,更加美观、生动的地图产品也是我们追求目标。 那么,我们如何才能制出如下图所示这样一幅艺术性较高的地图呢?今天我们来一探究竟吧! 按照惯例,现将网址给出: https://www.m…...

mxxWechatBot微信机器人V2版本文档说明
大家伙,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 先看这里 一、前言二、mxxWechatBot流程图三、怎么使用? 一、前言 经过不断地探索与研究,mxxWechatBot正式上线,届时全面开放使用。 mxxWechatBot&am…...

红队打靶练习:MISDIRECTION: 1
信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.12.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.12.1 00:50:56:c0:00:08 …...

Jmeter吞吐量控制器总结
吞吐量控制器(Throughput Controller) 场景: 在同一个线程组里, 有10个并发, 7个做A业务, 3个做B业务,要模拟这种场景,可以通过吞吐量模拟器来实现。 添加吞吐量控制器 用法1: Percent Executions 在一个线程组内分别建立两个吞吐量控制器, 分别放业务A和业务B …...

【XML】TinyXML 详解(二):接口详解
【C】郭老二博文之:C目录 1、XML测试文件(laoer.xml) <?xml version"1.0" standalone"no" ?> <!-- Hello World !--> <root><child name"childName" id"1"><c_child…...

【机器学习】人工智能概述
人工智能(Artificial Intelligence,简称AI)是一门研究如何使机器能够像人一样思考、学习和执行任务的学科。它是计算机科学的一个重要分支,涉及机器学习、自然语言处理、计算机视觉等多个领域。 人工智能的概念最早可以追溯到20世…...

flink 实时写入 hudi 参数推荐
数据湖任务并行度计算...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...