今天老魏在保存 SSL证书时遇到一个错误提示,nginx version: nginx/1.23.4 nginx: [emerg] “fastcgi_cache_key” directive is duplicate in /www/server/panel/vhost/nginx/0.fastcgi_cache.conf:1 nginx: configuration file /www/server/nginx/conf/nginx.conf test failed,导致新增的SSL证书无法保存。看了一下是 fastcgi_cache_key 指令在配置文件中重复定义了,具体出现在 /www/server/panel/vhost/nginx/0.fastcgi_cache.conf 第 1 行。

这个问题已经不是第一次出现了,不过也没有影响网站正常运行,也就没管它。今天有点时间就想着解决一下吧。
问了一下豆包,通常是因为:
- 同一个配置项在多个配置文件中重复出现
- 宝塔面板自动生成的配置与你手动添加的配置冲突
也就是上面两种可能性。然后豆包也很贴心的提出了解决办法,就是通过宝塔面板修复
- 登录宝塔面板
- 进入 软件商店 → 已安装 → 找到 Nginx → 设置
- 点击 配置修改,搜索 fastcgi_cache_key
- 删除重复的那一行,保留一个即可
- 保存并重载配置
或者也可以在宝塔面板的终端里面,输入以下命令:
mv /www/server/panel/vhost/nginx/0.fastcgi_cache.conf /www/server/panel/vhost/nginx/0.fastcgi_cache.conf.bak
然后测试配置:
nginx -t
老魏在修复之前,先执行了测试命令,结果是 failed,那么就输入上面的长命令重命名冲突文件。
然后再运行测试命令,这次显示 successful。

回头再去保存 SSL证书就没问题了。
现在想来估计是当初在 nginx中多添加了一行,导致的这个问题,今天也是在豆包帮助下解决了。
大家遇到类似的nginx问题,可以参考上面的办法,去 Nginx设置的配置修改里面,找到 fastcgi_cache_key重复的那一行删除掉即可。
魏艾斯笔记