繁中

Dify:從IP登錄到域+ HTTPS實踐

本文描述了如何升級的完整步驟 Dify(社區版) 通過騰訊雲從原IP安裝到 域名訪問並啟用HTTPS .
對於使用Docker環境部署的Dify實例。

1.背景描述

默認情況下,通過官方腳本或Docker安裝的Dify只能通過伺服器IP登錄,例如:

http://123.45.67.89

為了實現更專業、更安全的外部訪問,我們希望實現:

  • 使用自定義域名訪問(例如& nbsp;ai.mydify.cn);
  • 啟用HTTPS加密(使用外部頒發的SSL證書或自動頒發的Let ' s Protect)。

2.環境和先決條件

  1. 騰訊雲伺服器(或其他雲主機)
    Docker、Docker Compose已安裝。
  2. Dify通過Docker運行良好
    可通過IP訪問(例如 http://your-server-ip. ).
  3. 域名解析生效
    在域名服務提供商(騰訊雲、阿里雲等)中,將域名A記錄指向伺服器的公共IP位址。
    示例:ai.mydify.cn → 123.45.67.89
  4. SSL證書文件已準備好
    • fullchain.pem(or .crt)
    • privkey.pem(or .key)

3.準備證書文件

假設我們將外部頒發的證書文件放在伺服器上:

/等等/ssl/certs/fullchain.pem
/等/ssl/certs/privkey.pem

如果你是 .crt in + .key 格式,只需重命名為上述兩個文件即可。

4.將證書目錄裝載到nginx容器

Dify部署通常包括 nginx 容器作為反向代理。
我們只需要將證書目錄裝入其中即可。

方法1:Docker運行模式

如果您的nginx使用命令運行:

docker run -D 
 --名字nginx 
 -p 80:80 
 -p 443:443 
 -v /root/certs:/等/nginx/certs:ro 
 -v /root/nginx/inf.d:/etch/nginx/inf.d 
 nginx:最新

方法2:docker-compose模式(推薦)

 docker-compose.yml編輯:

服務:
 nginx:
 圖片:nginx:最新
 重新啟動:總是
 港口:
 - 「80:80」
 - 「443:443」
 卷:
 - /root/certs:/等等/nginx/certs:ro
 - ./ nginx/inf.d:/et/nginx/inf.d

:ro 指示只讀安裝,以防止容器意外修改證書。

#39;5。配置nginx支持HTTPS

編輯nginx配置文件 /root/nginx/inf.d/ai.mydify.cn. inf:

# HTTP 自動跳轉到 HTTPS
伺服器{
 listen 80;
 伺服器名稱ai.mydify.cn;
 返回301 https://$Host$請求_uri;
}

# HTTPS 反向代理 Dify
伺服器{
 聽443 ssl;
 伺服器名稱ai.mydify.cn;

 ssl_certification/etch/nginx/certs/fullchain.pem;
 ssl_certification_key /et/nginx/certs/privkey.pem;

 ssl_service_ache共享:SSL:10 m;
 ssl_service_timeout 10 m;

 ssl_protocols TLSv1.2 TLSv1.3;
 ssl_ciphers HIGH:!a空:!MD5;

 地點/ {
 代理_通行證http://docker-web-1:3000; # Dify Web 伺服器名稱或 IP
 proxy_set_header主機$host;
 代理設置頭X-Real-IP $remote_addr;
 pro_set_header X-Forwarded-For $pro_add_x_forwarded_for;
 pro_set_header X-Forwarded-Proto $scheme;
 }
}

您可以檢查Dify的Web容器的名稱(通常) docker-web-1通過 Docker PS .

6.測試並重啟nginx

轉到nginx容器驗證配置:

docker exec -it docker-nginx-1 nginx -t

外觀:

nginx:配置文件/等等/nginx/nginx. inf測試成功

表明配置正確。

然後重新加載:

docker exec -it docker-nginx-1 nginx -s重新加載

7.訪問驗證

在瀏覽器中打開:

https://ai.mydify.cn

如果您可以正常訪問Dify頁面並顯示Inbox圖標,則意味著已啟用HTTPS!

8.(可選)證書自動更新

如果證書是由Let ' s Protect頒發的,您可以在主機上設置自動續訂任務:

crontab -e

添加:

0 3 * certbot更新--安靜的docker exec docker-nginx-1 nginx -s reloading

2009年。常見問題

問題解決方法
瀏覽器顯示不安全 ssl_證書 檢查路徑是否正確安裝到容器
訪問仍跳轉到IP確認Dify的環境變量為 APP_URL 更新為域名
Nginx錯誤 無法加載證書如果證書路徑錯誤或文件權限不足,請檢查 /root/certs

10.總結

完成上述步驟後,您的Dify將擁有以下內容:

  • 獨家域名訪問(ai.mydify.cn)
  • HTTPS安全加密
  • 自動跳轉和反向代理

這不僅更安全,而且還方便了後續訪問外部系統(例如,webhooks、OAuth登錄等)。

請參閱命令快速檢查:

操作秩序
查看容器列表Docker PS
轉到nginx容器docker exec -it docker-nginx-1 bash
測試配置nginx -t
超載nginxnginx -s重新加載

管材:

返回頂端