Dify配置https协议

Dify配置https协议访问

我们再本地开发时服务启动后登录系统时无法登录,查看浏览器控制台发现访问后端接口均提示 401。这是由于前端和后的域名/网址不一致,导致前端和服务端跨域。

通过官方文档说明解决服务端与 web 客户端跨域,服务端必须为 https。

1、服务端配置https网关

由于部署dify的web、api端使用的nginx做的代理网关,因此我们只需对nginx进行配置https协议即可。在配置之前我们需要准备 server.pemserver.key 两个格式的证书文件。

进入 /dify-0.3.22/docker/nginx/conf.d 文件中,创建 cacerts 文件将 server.pemserver.key 放入该目录中。编辑 default.conf 文件:(这里我增加了logs日志的打印,可以忽略)

复制代码
server {
	listen 443 ssl;
	server_name 域名;
	ssl on;
	ssl_certificate /etc/nginx/conf.d/cacerts/server.pem;
	ssl_certificate_key /etc/nginx/conf.d/cacerts/server.key;
	access_log /etc/nginx/conf.d/logs/access.log  main;
	error_log /etc/nginx/conf.d/logs/error.log  info;

    location /console/api {
      proxy_pass http://api:5001;
      include proxy.conf;
    }

    location /api {
      proxy_pass http://api:5001;
      include proxy.conf;
    }

    location /v1 {
      proxy_pass http://api:5001;
      include proxy.conf;
    }

    location / {
      proxy_pass http://web:3000;
      include proxy.conf;
    }
}

这里将原本的80端口改为443端口,增加了证书文件的配置。同步需要将docker容器映射的端口进行修改

2、修改服务端容器端口映射配置

进入/dify-0.3.22/docker目录下,编辑docker-compose.yaml文件,

  1. 修改映射端口,将80:80替换为443:443。例如:

    nginx:
    image: nginx:latest
    volumes:
    - ./nginx/nginx.conf:/etc/nginx/nginx.conf
    - ./nginx/proxy.conf:/etc/nginx/proxy.conf
    - ./nginx/conf.d:/etc/nginx/conf.d
    depends_on:
    - api
    - web
    ports:
    - "443:443"

  2. 修改跨域策略 (请勿应在生产)

    WEB_API_CORS_ALLOW_ORIGINS: ''
    CONSOLE_CORS_ALLOW_ORIGINS: '
    '
    COOKIE_HTTPONLY: 'true'
    COOKIE_SAMESITE: 'None'
    COOKIE_SECURE: 'true'

由于 SameSite=None 必须配合 Secure=true,因此服务端必须为 https 协议才能实现跨域访问。

3、本地web服务配置服务端API

修改web跟目录下的.env文件,这里必须配置域名,不能配置IP

复制代码
NEXT_PUBLIC_API_PREFIX=https://域名/console/api
NEXT_PUBLIC_PUBLIC_API_PREFIX=https://域名/api

注意:配置域名的地方需填写你项目中实际的域名

相关推荐
鱼日先生9 小时前
Dify 中级实验(17):调试监控与性能优化——响应慢和 Token 超支如何定位?
工作流·dify·ai agent·大模型应用·ai 训练
鱼日先生15 小时前
Dify 高级实验(09):测试用例生成——如何让 AI 自动产出测试用例?
人工智能·测试用例·工作流·dify·ai agent·大模型应用·ai 训练
鱼日先生15 小时前
Dify 企业级实验(03):事件驱动流水线——Webhook 与定时触发如何组成异步处理链?
人工智能·工作流·dify·ai agent·大模型应用·ai 训练
蜡台17 小时前
本机 局域网 搭建本地 HTTPS 域名完整方案
网络协议·http·https·openssl
Alkaid207721 小时前
为什么查 IP 有两个结果?这个问题问倒过多少人
网络协议·tcp/ip
LCG元1 天前
ESP32-IDF 远程固件升级实战:HTTPS OTA + 双分区切换 + 自动回滚
数据库·redis·https
XLYcmy1 天前
pdf论文处理:CSV输出模式
数据库·python·pycharm·pdf·论文·csv·dify
严谨的麻辣烫1 天前
数据中心出口与住宅出口的技术差异:从 ASN 到 TCP 行为的一次拆解
网络·网络协议·tcp/ip
2501_915921431 天前
appuploader-cli 命令行上传 IPA 到 App Store Connect upload CI 集成
android·ci/cd·小程序·https·uni-app·iphone·webview
2501_915921431 天前
抓包鹰 Traceeagle 解除证书绑定,SSL Pinning 解除
网络·网络协议·网络安全·ios·adb·https·ssl