Dify部署内网时遇到的代理问题及解决办法

发布于:2025-04-21 ⋅ 阅读:(25) ⋅ 点赞:(0)

       大家知道,在公网环境下利用docker安装dify源码镜像比较容易,详见我之前的文章,基于dify开发agent、workflow等非常方便,本次想着在内部网络环境下也完成部署,以方便更多的人使用,但在部署到内网环境下,遇到各类问题,虽然可以通过离线下载安装包来解决,但是总会遇到各种各样的问题,因此本文做了如何通过代理实现安装和更新,具体如下,在dify镜像安装在企业内网部署时,需要考虑各种情况下的代理问题。

1.docker容器安装过程中的代理配置

安装过程中记得在.env的配置proxy,详见.env文件

2.安装插件的代理配置

记得关闭.env的proxy,打开plugin_daemon服务的proxy配置,并配置国内数据源,详见docker-compose.yaml配置文件的PIP_MIRROR_URL,之后安装任何插件都需要打开这一步的配置。

3.安装和配置ollama服务

采用第2步配置下,通过本地安装ollama插件
配置局域网内的ollama服务,记得关闭plugin_daemon服务的proxy配置,否则访问不到。

4.sandbox容器如何安装python库

默认情况下,sandbox还无法安装外部库,由于sandbox依赖于ssrf_proxy,主要原因是ssrf_proxy服务没有设置访问外部的代理,具体设置代理方法如下。
1).打开E:\temp\dify12\docker\ssrf_proxy目录下的squid.conf.template文件
在# cache_peer 172.1.1.1 parent 3128 0 no-query no-digest no-netdb-exchange default 行下面增加如下内容。

# 定义直接访问的 ACL
acl direct_access dst 192.128.0.0/16
# 配置 cache_peer
cache_peer http_proxy_ip parent http_proxy_port 0 no-query no-digest no-netdb-exchange default login=user:pass

# 允许 192.128.*.* 的请求直接访问(B段)
always_direct allow direct_access

# 其他请求通过代理
never_direct allow all

cache_peer的参数说明:
http_proxy_ip:代理服务器的主机名或 IP 地址
parent 或 sibling :表示该代理是上游(父)代理还是兄弟代理
http_proxy_port:代理服务器的 HTTP 端口
login=用户名:密码

2).打开docker-compose.yaml文件,找到ssrf_proxy服务,增加如下内容

environment:
      # pls clearly modify the squid env vars to fit your network environment.
      HTTP_PROXY_SERVER_HOST: http_proxy_ip
      HTTP_PROXY_SERVER_PORT: http_proxy_port
      HTTP_PROXY_SERVER_USERNAME: user
      HTTP_PROXY_SERVER_PASSWORD: pwd

然后卸载容器,再重新加载容器。进入sandbox容器中,即可用pip install安装库。

完成类库安装后,记得关闭上述两步设置的内容,防止ssrf攻击。

5.成功部署后实现第一个agent应用

查询数字孪生技术的应用场景有哪些?


网站公告

今日签到

点亮在社区的每一天
去签到