You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes同Pod部署Nginx+WordPress FPM访问EFS图片返回404

根因定位

  • 核心问题来自部署配置的挂载缺失:你当前的Deployment中,nginx容器没有将EFS对应的PVC挂载到/shared路径。你在app容器中创建的wp-content/uploads软链接指向的是/shared下的EFS目录,但是Nginx容器内不存在/shared这个挂载点,自然无法解析软链接指向的实际文件,访问图片就会返回404。
  • 符号链接跟随配置不是当前问题的核心:Nginx默认是允许跟随符号链接的,你当前的配置中没有禁用该规则的指令,因此无需优先排查该配置。

修复步骤

1. 调整Deployment的Nginx容器挂载配置

给Nginx容器增加和app容器完全一致的EFS挂载配置,修改后的Nginx容器配置如下:

- image: nginx
  name: nginx
  ports:
  - containerPort: 80
    protocol: TCP
  volumeMounts:
  - mountPath: /var/www/html
    name: shared-files
  - mountPath: /etc/nginx/conf.d/default.conf
    name: nginx-config
    subPath: nginx.conf
  # 新增EFS挂载配置,和app容器的挂载路径保持一致
  - mountPath: /shared
    name: efs-pvc

2. (可选)显式配置Nginx允许跟随符号链接

如果调整挂载后仍有异常,可以在Nginx的server配置块中显式开启符号链接跟随:

server {
    listen       80;
    server_name some server;
    root   /var/www/html/;
    index index.php index.html index.htm;
    # 显式允许跟随符号链接
    disable_symlinks off;
    
    # 其余原有配置保持不变
    access_log /var/log/nginx/webapp-access.log;
    error_log /var/log/nginx/webapp-error.log;
    # ... 剩下的原有配置
}

验证方法

重新应用修改后的部署资源后,进入Nginx容器执行ls /var/www/html/wp-content/uploads,确认可以正常列出目录内的文件,再访问图片资源验证返回正常即可。

内容的提问来源于stack exchange,提问作者rholdberh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:27:03