Ubuntu20.04部署Magento2遇nginx duplicate upstream 'fastcgi_backend'错误求助
解决Nginx配置中"duplicate upstream 'fastcgi_backend'"错误的步骤
问题原因
错误提示说明fastcgi_backend这个上游服务器定义在Nginx配置中重复出现——你的/etc/nginx/sites-enabled/magento.conf里定义了该上游,同时其他已加载的Nginx配置文件(比如主配置nginx.conf、默认站点配置default.conf)中也存在相同的定义。
解决步骤
1. 定位重复定义的位置
执行以下命令搜索所有Nginx配置文件中fastcgi_backend的定义:
grep -r "upstream fastcgi_backend" /etc/nginx/
该命令会列出所有包含该上游定义的文件路径。
2. 删除重复的定义
- 如果搜索结果显示除了
magento.conf外,其他文件(比如/etc/nginx/nginx.conf或/etc/nginx/sites-enabled/default)也有该定义,删除magento.conf开头的upstream块,修改后的magento.conf内容如下:
server { server_name open-server.ru; listen 80; set $MAGE_ROOT /opt/magento2; set $MAGE_MODE developer; # or production access_log /var/log/nginx/magento2-access.log; error_log /var/log/nginx/magento2-error.log; include /opt/magento2/nginx.conf.sample; }
- 如果只有
magento.conf里有该定义,检查是否在文件中重复写了多次(比如误复制),删除多余的即可。
3. 验证配置并重启Nginx
执行配置测试命令确认错误修复:
nginx -t
如果输出nginx: configuration file /etc/nginx/nginx.conf test is successful,则重启Nginx使配置生效:
systemctl restart nginx
4. 额外验证(确保Magento运行正常)
- 检查PHP-FPM socket文件是否存在:
ls -l /run/php/php8.1-fpm.sock
如果文件不存在,确认PHP 8.1-FPM服务是否正常运行:
systemctl status php8.1-fpm
- 访问你的Magento站点(
open-server.ru),确认页面能正常加载。
内容的提问来源于stack exchange,提问作者Alexander Pashkov
相关产品推荐
相关产品推荐

