冠军获奖经历:这一路我们不孤单!

 Datawhale干货 

获奖:元贞、小罗,Datawhale优秀学习者

前 言

大家好,我是 2023 寻找游戏大模王 AI 原生应用大赛的 Top1 荆轲刺秦王团队的小罗,很高兴能在这里与大家分享我们这次比赛的经验,同时也希望以后有机会可以和大家一起交流学习~

46efa9768066c2a9d2e9d033051c7bae.png

图1.左二是我

初遇

首先,怀着对创作游戏和学习大模型的那么一份憧憬,作为 Datawhale 鲸英助教的我大胆地报名了 Datawhale 智能云大模型游戏应用开发活动的助教招募,准备和学习者一起探索大模型在游戏领域的应用,内心还是很希望能玩上自己亲手做的游戏~如下图所示我是二群的专业助教。

2b25408cfc1f89c0fb25dca087d6b52a.png

图2.助教团队

在学习群里,大家根据以往组队的经验,主动进行自我介绍,包含了所具备的技能点,想做的方向、组队的意向等。我也主动表达了愿意组队,随后,就被后来的队员拉进了一个小群,集齐队伍就开始了属于我们的游戏开发故事。

我们最开始讨论的是我们想要开发什么样的游戏以及如何分工。尽管我们六个人都没有游戏开发相关的经验,但我们都怀着学习和实践的态度,并且愿意投入时间和精力来学习和运用自己所学的知识来创建我们自己的游戏。

于是,我们开始了一次次头脑风暴和协作来不断优化我们的想法和项目计划。我们相信,通过团队的努力和持续地学习,我们一定能够开发出一款与众不同的、属于自己的游戏~

比赛过程

团队构成

成功的项目离不开一个成功的团队,离不开团队的协作和帮助。我们的团队构成基本如下:主要有六人组成:分工为剧本、美术、prompt 工程师、游戏主程、大模型对接工程师、视频剪辑师。(后续考虑到完善性,还应包括音效设计,动作设计)。

游戏方向选择

1195cb05ff824c5d8f47afeaef04e008.png

图3.赛事说明

从赛事说明中可以看出,这个比赛给参赛者提供了很高的自由度,可以任意发挥脑洞进行创作。所以最初,我们团队有很多想法,包括做三体游戏、破壁人和面壁者、无限流 CYOA 游戏等。但由于时间和技能点的限制,我们决定先开发一款基于文字+图片的 2D 游戏,再逐步扩展剧情、增加玩法以及优化美术。以下是我们 11.20 头脑风暴的一点记录。

9eac08cf5c2be1766b2d9dc01a4afcea.png

随后,我们在讨论游戏的玩法时想到了将我们的小游戏与历史故事结合起来。正好,我们团队中有一位擅长写剧本的成员,可以为我们的游戏提供精彩的故事和角色!《荆轲刺秦王》是一部广为人知的历史经典故事,我们认为,如果能通过 AI 与这些经典历史人物进行交流,将会非常有意思(我真的很想知道项羽为何乌江不渡?)。在技术方面,由于团队成员之前没有游戏开发经验,所以最初我们考虑的是先去学 Unity 的基本操作,再使用 Unity 进行开发,并逐步进行优化。

与此同时,作为助教,我在前期整理了 RPG 游戏的相关案例开发流程教程。这无形中为我们几个没有接触过游戏开发的成员提供了一条新的思路。我们可以直接使用 RPG maker 来创建场景变换、人物移动等,而不必重新学习 Unity,从而减轻了一定的代码工作负担。这种方法可以说是另辟蹊径,为我们游戏开发过程提供了新的可能性。

感兴趣的小伙伴可以看看,RPG maker 小白入门教程:
https://saeikvpfb9v.feishu.cn/docx/XPFxdicdpoVUQ8xp6PEcLnqcntd

在游戏开发过程中,鉴于 RPG maker 在实现剧本部分内容方面存在困难,团队决定结合 RPG 游戏的特点,设想了一个更为宏大的背景,那就是加入两个势力的博弈,增加更丰富的剧情,让玩家和 AI 的交互具有更多的主观能动性。此外,我们决定使用 AI 生成人物立绘、让 AI 生成游戏情节等方式,使游戏变得更加丰富。下图所示是我们利用文心大模型生成的游戏人物宁姬的形象立绘(真的好美,我好爱这版宁姬):

decaff8eb7e6e72ad5e6ed9a5818df02.png

图4.文心大模型生成的游戏人物形象立绘

与 AI 结合

接下来,我们考虑如何将游戏与 AI 结合起来,为玩家提供更具沉浸感的体验,同时也是这次比赛的要求之一。我们将此过程分为四个模块,包括游戏与大模型的结合、接入大模型接口、使用 RPG Maker 插件以及开发自己的游戏 npc。在这些模块中,生成个性化的 AI NPC 和利用大模型进行事件流控制是关键步骤。通过这样的方法,我们能够赋予游戏中的 NPC 独特的情感、行为方式和对话能力,从而提升游戏的沉浸感!

prompt 设计

为了生成拥有独特性格和背景故事的 NPC,我们使用自定义 Prompt 进行设计。以下是我们在设计 Prompt 时的一些讨论和想法:

bd3dee1d57c877d13c386d53a9ecbca8.png

图5.设计 Prompt的讨论

  1. 独特性格:我们通过在 Prompt 中描述 NPC 的特定性格特征,例如善良、乐观或内向等,以及他们的行为方式和态度来塑造 NPC 的独特性格。

  2. 背景故事:我们在 Prompt 中加入 NPC 的背景故事,包括他们的成长经历、家庭背景、职业经历等。这些细节能够帮助模型生成具有丰富而具有深度的 NPC 角色。

  3. 对话风格:我们通过在 Prompt 中设定 NPC 的对话风格,如幽默风趣、正式严肃或温柔体贴等,来使 NPC 更加生动有趣。

  4. 目标和愿望:我们将 NPC 的目标和愿望融入到 Prompt 中,描述他们追求的梦想、渴望的改变或追寻的价值观,以增加角色的动机和情感驱动力。

插件开发

我们利用了 RPG Maker 和百度智能云千帆大模型来开发一个 NPC 对话插件。然而,我们遇到了一个问题,即无法在流程上进行控制,导致剧情无法推进,只能进行一次对话而无法连续对话。为了解决这个问题,我们开发了一个根据历史聊天记录进行流程控制的插件,使角色可以与 AI NPC 连续对话。同时,我们还通过对话和事件驱动的方式来增强沉浸感和游戏体验。这样的优化大大地提升了游戏的体验效果。下图展示了玩家与 AInpc 对话输出的情况,让你能够体验仿佛就在与荆轲本人对话一般的真实感受!

f2165ddb85667679126f6fc358c3d8d6.png

图6.玩家与 AInpc 对话

在前两个插件完成之后,在我们的《荆轲刺秦王》游戏的初版和升级版都已经开发完成的情况下,我和元贞萌生了一个大胆的想法——那就是制作一款大侦探游戏,这也是我前段时间一直心心念念的游戏。受到《荆轲刺秦王》的开发经验启发,我们希望让多个 NPC 之间发生的事件和对话内容能够共享。然而,要让游戏中的 NPC 通过积累事实记忆并更真实地生活在游戏世界中,成为了当时我们面临的最大难题。

8683f49cc958c0a91cad20212f5ab726.png

图7.游戏截图

例如上图,这个人物设定为艾米莉亚,但当与她对话时却自称为汤姆,这就是出现了记忆混乱的情况,真的开始怀疑自己是不是来搞笑的了。

f304a32c4b4c9111cbcce1beed94cd5b.png

图8.开发截图

再比如,跟它对话它说自己是人工智能语言模型,直接就跳出了游戏人物设定,这会让玩家直接出戏,从而影响游戏的整体体验!

为了解决这些问题,我和元贞在学习群里询问,看有没有什么好的解决方法让在这个圆桌上的所有 AI npc 都能知道当时侦探与每一位 AInpc 角色的所有对话,实现共享记忆。经过讨论最终获得了斯坦福小镇的思路,我们恍然大悟!在开始和 npc 对话的代码之前先调用了一次千帆 API。通过分析之前的对话和现有的事实性文本(从文本文件中读取),使千帆生成了事实性文本描述,并将生成的文本保存到本地的文本文件中。然后,我们将这些事实性文本加载到 system 中,作为额外的一段 Prompt,再与对话一起传递给模型,这样做的目的是让模型能够更好地理解上下文,并实现共享记忆的效果。插件部分代码截图,是我在原有插件的基础上写的!

de495999cc671b980d46550486bc7c37.png

图9.插件代码

以下是我们文件中的事实性文本和对应的文本描述:

dcb0efe58bd8d28520403beecb7fbddb.png

图10.事实性文本和对应的文本描述

也就是说我们又开发了一个事实构造与记忆共享的插件,利用了事实构建、场景发掘和知识广播的技术,这使得所有 AI 角色都能了解我们跟其他角色之间的对话内容,类似于剧本杀或者狼人杀的机制。这样一来,NPC 们可以根据积累的事实记忆进行推理和互动,从而增加了游戏的复杂性和真实感。

这一插件为我们的大侦探游戏带来了全新的可能性,使得 NPC 之间的交互更加有趣和出人意料。玩家可以通过与 NPC 对话和推理事实来解开谜题找出真凶,体验到更加沉浸式的游戏体验。也就是说 i 人玩家可以一个人沉浸式地体验剧本杀的快乐啦~

a8ceba38b6f81bcd99096d97cfd2d167.png

图11.通过与 NPC 对话和推理事实来解开谜题找出真凶

最终我们是提交了三个视频如下(算两个游戏,第二个视频是在第一个视频的基础上升级剧情) 

  1. 【打破次元壁,用百度千帆大模型开发一款《穿越秦朝·荆轲刺秦王》AI NPC 的剧情触发游戏!】 https://www.bilibili.com/video/BV1iC4y1c7S5

  2. 【【寻找游戏大模王】《穿越秦朝:荆轲刺秦王》全新更新!揭秘新剧情与开放源代码!-哔哩哔哩】 https://b23.tv/9dJbHiH

  3. 【【寻找游戏大模王】🔍 新游戏速递:48 小时极限开发的款大侦探解密游戏 v1.0《庄园密案——谁是真凶?》-哔哩哔哩】 https://b23.tv/1BS2DHS

结果

现在回想,还是超级开心!这个结果真的很出乎我的意料,看到我们两款游戏 demo 能够进入优质作品前十五名,并且《荆轲刺秦王》最终赢得了 2023 百度智能云游戏大赛的一等奖,这真是太棒了!!!!(虽然在我学校加不了量化

e6f4a996a024a672bc3765ea72c93bc1.png 图12.一等奖奖杯

技术干货

我们团队完成了赛事组的 4 条参赛要求,包括

  • 调用了千帆平台的大模型截图 NPC

  • 使用大模型完成流程控制影响剧情发展

  • 使用 comate 辅助代码

  • 使用文生图模型画人物立绘图

并且为游戏引擎开发了可直接使用的插件,插件已经上传至 git 并开源,地址如下:https://github.com/npcAiGame/npcAiGame。

因为团队中一开始并没有人员参加过游戏开发,所以并没有选择 unity 或者其他比较复杂的游戏引擎,而选择了 rpg maker mz 作为了本次过程中使用的游戏引擎。Rpg maker 操作简单,功能多样,且绝大多数情况下不用编写代码,使得游戏制作过程大大简化,这样也保证了游戏进度可以在比赛时间内被较好地完成。

在确定了游戏引擎之后,便交由剧本开始编写剧本,当剧本交出之后,开始由美术画人物立绘图,同时游戏主程开始开发游戏流程,大模型接入工程师开始编写相关代码。因为 rpg maker 只能通过插件的方式植入代码,所以我们编写了相关的将大模型接入 npc 的插件,并且为了使与 npc 的对话能够推动流程的良好进行,我们还编写了相关的流程控制插件,其主要代码其实是通过另一个大模型接口,判断过去的对话中是否触发了某个条件。

我们利用全局变量作为连接大模型和游戏控制流程的关键。全局变量,一种在整个程序中均可访问和修改的变量,为我们提供了一种有效的方式来跟踪玩家的行动和游戏状态。例如,当大模型返回的 JSON 数据显示玩家完成了一个关键任务时,我们会将一个全局变量的值设置为 1,从而触发游戏中的下一个事件或转换。此外我们还开发了事件记忆的相关插件。

通过大模型,我们可以将玩家与游戏中的 NPC 之间的对话进行分析和总结,提取出关键的信息点,并将它们转化为“事实”。这些事实不仅包括玩家所做的选择和行动,也包括与 NPC 之间交流的具体内容。这种方法的核心在于,这些事实被保存在全局变量中,这使得游戏中的所有 NPC 都可以访问和参考这些信息。

这种设计的优势在于,当玩家与某个 NPC 进行下一次对话时,这些全局变量中的事实可以作为对话的 prompt 传递给 NPC。这意味着每个 NPC 在与玩家互动时,都能够根据之前发生的事件和对话做出更加合理和真实的反应。例如,如果玩家之前帮助了一个 NPC,那么这个行为的信息会被保存,并影响到未来与其他 NPC 的互动。

此外,这种技术还使得 NPC 能够“记住”玩家的行为和选择,并据此做出策略性的反应。这不仅增强了游戏的沉浸感,也提高了游戏的可玩性和复杂度。玩家的每个选择和行动都可能对游戏世界产生连锁反应,从而创造出独一无二的游戏体验。

我们通过编写详细的算法和编程逻辑来实现这一功能。例如,我们开发了一种机制,能够让大模型根据玩家与 NPC 的互动自动更新全局变量。同时,我们也确保这些变量能够在游戏的不同环节和场景中被有效地调用和应用。

参赛心得

热爱可以战胜一切!我从未想过可以和元贞在 48 小时内合作完成一个大侦探游戏 demo 的制作。前段时间我对侦探解密和桌游卡牌策略类游戏非常着迷,而恰好我有机会去开发属于自己的大侦探解密游戏。这真的让我感到非常激动,我真的全力以赴地想要实现它,熬夜也要将它肝出来!

668a87302db8bae03db65dce0d83c10d.png

ff6176e2b7891fab4d86d7646461077b.png

图13.ddl聊天记录

12 月 8 日已经是比赛截止日期当天了,但我们的大侦探游戏仍在开发中,并且遇到的关键问题还没有完全解决。现在回想起来,真的是太刺激了!

完成比完美更重要!相信自己,相信队友!夸奖和鼓励真的很重要!一开始,我也曾感到迷茫和担心自己会三分钟热度,但是在群里,像 Amy 姐和煜神他们一直在鼓励我们,鼓励我们敢于开始。通过不断尝试、试错和摸索来提升自己,即使结果并不完美,也是一种宝贵的历练和成长。当你做出一点小小的成绩时,团队中的每个人都会夸奖和称赞你,这种感觉非常棒,也会激励你继续努力往后做下去!

e9b36e89c6397ea33bfc83ee2e78ed7e.png

图14.相信自己,相信队友

当你真正着手做的时候思路才变得逐渐清晰起来,行动,可以克服一切犹疑和思想障碍,带你走向真实的成功!

意外发现自己还蛮有策划天赋?被水哥称赞比一些游戏主策还厉害开心耶哈哈(斯突然意识到自己以前曾是学校英语爱好者协会策划部一员,没白费老部长的一番苦心教导~

感谢

非常感谢 Datawhale 提供这样一个平台,正是因为有了 Datawhale,我们才得以相遇,有机会走到一起成为一个 Team,因为 Datawhale&&在问&&chatTests 的支持,我们才能获得这个 Top1,并且遥遥领先!!!

336cdbdb98bed8b8768f46daf704f638.png

图15.投票结果

同时感谢本次比赛的主办方-百度,提供了百度智能云千帆大模型平台,让我们将大模型技术融入游戏设计、创造出独一无二的游戏世界引爆创意的火花并重新定义游戏体验。以及感谢百度智能云游戏大赛的评审团队,他们对我们的作品给予了高度评价和认可。这为我们的项目带来更多的关注和机会,让更多的人了解和使用我们的创意和技术,颁奖是在智算大会时颁的也算是参加了百度智算大会!!!

24503e5573114b6d78511e0f9d7d6805.png

最后,感谢我们团队中的每一位成员,从完成这个比赛,到入选前 15,最后荣获 Top1,每一次成就都凝聚着我们每一位成员的付出与默契协作。

Datawhale 不仅仅是一个开源平台,它更像是一座灯塔,引领着我们这群对知识有着无尽渴望的探索者,驶向更加广阔的技术海洋。正是 Datawhale 的理念和使命,鼓励并推动了开源文化的发展,让我们这样的团队能够在开放、共享的环境中成长,不断学习和进步。在这个平台上,我们不仅提升了知识和技能,而且更重要的是,我们还培养了团队协作和共同创造的价值观念,恰如那句“Datawhale 在学习路上伴你同行,我们本可以不那么孤单”。Datawhale 的每一次活动、每一次挑战,都激励着我们去超越自我,去追求卓越~

总体上来看,使用大模型进行游戏 npc 的制作,使之有血有肉,充满感情,这个是以后历史发展之必然,但是在此之前,依然很大程度上依赖于各家大模型基座的性能。在这次活动中,从一个完全没有游戏制作经历的队伍到最后获奖,队伍中的每个人都至关重要。游戏,作为每个人生活中不可或缺的部分,其根本的目的,不是为了使我们获得跟日常生活中一样的感受,而是为了使我们感到快乐,或者悲伤,以能充分调动我们的情感。像机械一般喋喋不休的智能机器人,远远不是最终的样子。

11189c4db4a5b75893abaa987113e572.png

干货学习,在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/319642.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为常用的命令——display,记得点赞收藏!

华为设备提供了多条display命令用于查看硬件部件、接口及软件的状态信息。通常这些状态信息可以为用户故障处理提供定位思路。 常用的故障信息搜集的命令如下: 路由器常用维护命令表 交换机常用的故障信息搜集 关注 工 仲 好:IT运维大本营,获…

函数栈桢的创建和销毁

函数栈桢的创建和销毁 一、解决的问题二、认识常用的寄存器及其指令操作三、函数栈桢解析三、回答问题 一、解决的问题 1.局部变量是怎么创建的?  2.为什么局部变量的值是随机值?  3.函数是怎么传参的?传参的顺序是怎样的?  4.…

全新小白菜QQ云端机器人登录系统源码 /去除解密授权学习版源码

源码介绍: 全新小白菜QQ云端机器人登录系统源码,是一款经过全面解密的授权学习版源码。 这款源码已解除了授权版的限制,然而许多人可能对其用途并不了解。实际上,该源码主要面向群机器人爱好者设计。它是一个基于挂机宝机器人框…

【位运算】【二分查找】【C++算法】100160价值和小于等于 K 的最大数字

作者推荐 【动态规划】【字符串】扰乱字符串 本文涉及的基础知识点 二分查找算法合集 位运算 LeetCode100160. 价值和小于等于 K 的最大数字 给你一个整数 k 和一个整数 x 。 令 s 为整数 num 的下标从1 开始的二进制表示。我们说一个整数 num 的 价值 是满足 i % x 0 且…

css3背景与渐变

css3背景与渐变 前言背景颜色background-color基础知识背景图片background-image基础知识背景图片的重复模式 背景尺寸background-sizecontain和cover是两个特殊的background-size的值 背景裁切 background-clip背景固定 background-attachment背景图片位置 background-positio…

LeetCode 590. N 叉树的后序遍历

590. N 叉树的后序遍历 给定一个 n 叉树的根节点 root ,返回 其节点值的 后序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。 示例 1: 输入:root [1,null,…

虚拟机配置网络

1开启网络 右击打开属性配置ipv4 配置vm 配置系统 配置liunx网卡信息 vim /etc/sysconfig/network-scripts/ifcfg-ens33 打开电脑任务管理器

1.13寒假集训

晚上兼职下班回来才有时间写题&#xff0c;早上根本起不来 A: 解题思路&#xff1a;我第一开始以为只要满足两个red以上的字母数量就行&#xff0c;但是过不了&#xff0c;后面才发现是red字符串&#xff0c;直接三个三个判断就行。 下面是c代码&#xff1a; #include<io…

【GitHub项目推荐--一行命令下载全网视频】【转载】

项目地址&#xff1a;https://github.com/soimort/you-get 首先声明&#xff0c;请不要使用该项目从事违法活动哦~仅供学习使用&#xff01; 解决痛点 如果你上网的时候看了一些东西不错&#xff0c;想下载下来&#xff0c;或者在线观看喜欢的视频&#xff0c;但是没有找到网…

基于Xilinx K7-410T的高速DAC之AD9129开发笔记(二)

引言&#xff1a;上一篇文章我们简单介绍了AD9129的基础知识&#xff0c;包括芯片的重要特性&#xff0c;外部接口相关的信号特性等。本篇我们重点介绍下项目中FPGA与AD9129互联的原理图设计&#xff0c;包括LVDS IO接口设计、时钟电路以、供电设计以及PCB设计。 LVDS数据接口设…

openssl3.2 - quic服务的运行

文章目录 openssl3.2 - quic服务的运行概述笔记运行openssl编译好的quic服务程序todo - 如果自己编译quic服务工程END openssl3.2 - quic服务的运行 概述 在看 官方 guide目录下的工程. 都是客户端程序, 其中有quic客户端, 需要运行quic服务才行. openssl编译好的目录中有编译…

基于Matlab/Simulink的MIL仿真验证解决方案

文章目录 需求追溯 虚拟环境 模型检查 仿真验证 测试报告 参考文献 针对模型开发阶段的ECU算法&#xff0c;可以很直接地将其与虚拟车辆模型连接起来&#xff0c;通过MIL对其进行验证和确认。可以在开发过程的早期检测到设计错误和不正确的需求&#xff0c;也有助于安全地…

UML-状态机图(状态图)

UML-状态机图&#xff08;状态图&#xff09; 一、状态机图简介1、状态&#xff08;1&#xff09;简单状态&#xff08;2&#xff09;并发状态2、转移&#xff08;1&#xff09;判定决策点&#xff08;2&#xff09;同步&#xff08;分叉与汇合&#xff09; 3、事件4、动作5、活…

C++ 输入用户名和密码 防止注入攻击

1、问题解释&#xff1a;注入攻击 &#xff0c;无密码直接登录数据库 可视化展示 1.1、当你的数据库为&#xff1a;其中包含三个字段id user 以及md5密码 1.2、在使用C堆数据库信息进行访问的时候&#xff0c;使用多条语句进行查询 string sql "select id from t_user…

Unity Shader 属性的定义

Unity Shader 属性的定义 什么是材质球 人的衣服 什么是shader 决定材质跟灯光的作用 Property 若是把shader看作class&#xff0c;那么Property就可以看成成员变量 属性定义的通用格式 Properites{ Property[Property…] } ep:定义一个int&#xff1a; name("dis…

YOLOv5模型转ONNX,ONNX转TensorRT Engine

系列文章目录 第一章 YOLOv5模型训练集标注、训练流程 第二章 YOLOv5模型转ONNX,ONNX转TensorRT Engine 第三章 TensorRT量化 文章目录 系列文章目录前言一、yolov5模型导出ONNX1.1 工作机制1.2 修改yolov5代码&#xff0c;输出ONNX 二、TensorRT部署2.1 模型部署2.2 模型推理…

【深度学习每日小知识】Computer Vision 计算机视觉

计算机视觉是人工智能的一个领域&#xff0c;涉及算法和系统的开发&#xff0c;使计算机能够解释、理解和分析来自周围世界的视觉数据。这包括从静态图像到视频流甚至 3D 环境的一切。 使用对象检测和特征提取等方法&#xff0c;计算机视觉本质上需要从视觉输入中提取有用信息…

TensorRT(C++)基础代码解析

TensorRT(C)基础代码解析 文章目录 TensorRT(C)基础代码解析前言一、TensorRT工作流程二、C API2.1 构建阶段2.1.1 创建builder2.1.2 创建网络定义2.1.3 定义网络结构2.1.4 定义网络输入输出2.1.5 配置参数2.1.6 生成Engine2.1.7 保存为模型文件2.1.8 释放资源 2.2 运行期2.2.1…

STM32的USB设备库

适用范围&#xff1a;“on the STM32F10xxx,STM32F37xxx, STM32F30xxx and STM32L15xxx devices.” STM32_USB-FS-Device_Lib_V4.0.0.rar&#xff08;访问密码&#xff1a;1666&#xff09;https://url48.ctfile.com/f/33868548-1000799917-a5409d?p1666 适用范围&#xff1…

服务器配置SSL证书到nginx基于Fdfs存储服务器或者直接阿里云绑定SSL

1.如果用FDFS存储服务器内置nginx设置SSL证书 1.验证当前nginx是否存在 http_ssl_modulehttp_ssl_module模块 如果存在直接配置就行 server {listen 80 default backlog2048;listen 443 ssl; server_name 域名; ssl_certificate /usr/local/nginx_fdfs/ssl/xxxx.top.crt; ssl…