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

HTTPS反向代理嵌入Dify页面时静态资源缺失路径前缀致404

解决Dify嵌入页面反向代理后资源404问题

问题场景

通过Nginx将项目服务的/dify/路径反向代理至Dify服务器,嵌入的iframe地址为https://项目IP/dify/chatbot/xxxxx,但页面内所有_next相关资源均以https://项目IP/_next路径请求,缺失/dify/前缀,导致404错误。

解决方案

方案一:添加Nginx代理规则捕获/_next路径

修改Nginx配置,将所有/_next/开头的请求也转发至Dify服务器,配置示例:

server {
    listen 443 ssl;
    server_name xxx.xxx.xxx.xxx; # 项目服务IP或域名

    # 代理/dify/路径至Dify服务器
    location /dify/ {
        proxy_pass https://xxx.xxx.xxx.110/; # Dify服务器地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 代理/_next/路径至Dify服务器,解决资源404
    location /_next/ {
        proxy_pass https://xxx.xxx.xxx.110/_next/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 项目自身的其他配置...
}

配置完成后重启Nginx,资源请求会被正确转发至Dify服务器。

方案二:配置Dify基础路径(推荐)

若Dify支持设置基础路径,在Dify启动时通过环境变量指定BASE_PATH=/dify,让Dify生成的所有资源路径自动带上/dify前缀,比如/dify/_next/...。

示例启动命令:

BASE_PATH=/dify ./start.sh

此时Nginx仅需保留/dify/的代理配置即可,所有资源请求会自动匹配代理路径,无需额外规则。

总结

优先选择方案二,从应用层面适配反向代理路径,逻辑更规范;若Dify暂不支持基础路径配置,再用方案一的Nginx规则兜底。

内容的提问来源于stack exchange,提问作者陈铭雄

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 07:57:21