使用 Let’s Encrypt 免費申請泛域名 SSL 證書,并實現自動續期

使用 Let’s Encrypt 免費申請泛域名 SSL 證書,并實現自動續期

目錄

  • 使用 Let’s Encrypt 免費申請泛域名 SSL 證書,并實現自動續期
    • 🛠? 環境準備
    • 💡 什么是 Let’s Encrypt?
    • 🧠 Let’s Encrypt 證書頒發原理
      • 1.?域名驗證
      • 2.?證書生成
      • 3.?證書安裝
      • 4.?自動續期
    • 🛠? Certbot 的工作原理
    • 📦 安裝 Certbot
      • Linux 系統
      • 其他系統平臺
    • 🌐 單域名 SSL 證書
      • 🔒 申請單域名 SSL 證書
      • 🔄 單域名自動續期
    • 🌐 泛域名 SSL 證書
      • 🛡? 申請泛域名 SSL 證書
        • 使用 DNS 驗證申請泛域名證書
      • 🔄 泛域名設置自動續期
        • 1.?創建自動化 DNS 腳本
        • 2.?配置自動續期命令
        • 3.?配置 Crontab 定期續期任務
        • 4.?重載 Nginx 配置
        • 5.?驗證自動續期配置
        • 🔍 深入解讀
        • ? 配置完成后的效果
    • 📁 申請的 SSL 證書文件所在目錄
      • nginx配置證書示例
    • 🔍 驗證 HTTPS 配置
    • 🛡? 常見問題及解決方法
      • 1.?DNS 驗證失敗
      • 2.?Nginx 配置沖突
    • 🎉 總結
    • 🔗 參考鏈接

在如今的互聯網環境中,為網站配置 SSL 證書已成為安全的標配。本文將介紹如何使用?Let’s Encrypt?免費獲取泛域名 SSL 證書,并實現自動續期,為你的網站保駕護航。

🛠? 環境準備

在開始之前,確保你具備以下條件:

  • 一臺可以訪問互聯網的服務器(Linux 環境,如 Ubuntu/CentOS)。
  • Root?權限或?sudo?權限。
  • 一個已解析的域名(本文以?example.com?為例)。

💡 什么是 Let’s Encrypt?

Let’s Encrypt?是一個免費的、自動化的、開放的證書頒發機構(CA),提供免費 SSL 證書。它的目標是讓所有網站都能輕松實現 HTTPS 加密,保障用戶數據的安全。通過?Let’s Encrypt,你可以為你的主域名、子域名,甚至泛域名配置安全證書,而且過程完全自動化,不需要手動申請和管理證書,官方推薦使用?Certbot。

🧠 Let’s Encrypt 證書頒發原理

Let’s Encrypt 證書的頒發是通過?自動化的認證流程?完成的,以下是基本流程:

1.?域名驗證

在申請證書之前,Let’s Encrypt 必須驗證你對所申請域名的控制權。這是通過以下幾種方式進行的:

  • HTTP-01 驗證:Let’s Encrypt 向你請求創建一個特定的文件,并放在你網站的指定路徑下。它通過訪問該文件來驗證你是否控制該域名。
  • DNS-01 驗證:Let’s Encrypt 提供一條 DNS TXT 記錄,要求你將其添加到域名的 DNS 設置中。它通過檢查 DNS 記錄來驗證你對域名的控制權。

對于?泛域名證書,必須使用?DNS-01?驗證方式,因為 HTTP 驗證不能跨域名層級進行。

2.?證書生成

一旦驗證成功,Let’s Encrypt 會生成一個 SSL 證書,并將其發放給申請者。這個證書包含了公鑰和域名信息,任何人都可以通過該證書與網站進行安全通信。

3.?證書安裝

證書的安裝你可以選擇自己手動安裝,我自己是手動安裝的,因為我用的是docker版的nginx服務器。你也可以由?Certbot?自動完成,前提是你已經在服務器上安裝?Nginx?或?Apache?等服務器。Certbot 會將證書安裝到 Web 服務器(如 Nginx 或 Apache)上,并配置好相應的加密設置,自動安裝會更方便,動手配置更靈活,比如申請證書和 Web 服務器不在同一臺電腦上就需要手動。

4.?自動續期

Let’s Encrypt 的證書有效期為?90 天,因此需要定期續期。Certbot 自動進行續期驗證,確保你的網站不會因為證書過期而遭到用戶的安全警告。

🛠? Certbot 的工作原理

Certbot?是一個命令行工具,用于自動化整個 SSL 證書的管理流程。它可以做以下幾件事:

  • 申請證書:使用 ACME 協議從 Let’s Encrypt 獲取證書。
  • 驗證域名所有權:通過 HTTP-01 或 DNS-01 驗證確保你擁有該域名。
  • 安裝證書:將證書自動安裝到你的 Web 服務器,并配置相關的加密參數。
  • 續期證書:定期自動續期證書,避免證書過期。

Certbot 的核心工作是通過?ACME 協議(自動證書管理環境)與 Let’s Encrypt 通信。ACME 是一套標準協議,用于自動化證書申請、驗證和安裝的過程。Certbot 使用 ACME 協議與 Let’s Encrypt 進行通信,確保你的網站能夠通過安全的 HTTPS 連接。

📦 安裝 Certbot

Certbot?是由?Electronic Frontier Foundation (EFF)?提供的一個開源工具,用于自動化從 Let’s Encrypt 獲取和管理 SSL 證書。Certbot 會自動為你處理證書申請、安裝和續期等過程。

Linux 系統

推薦使用 Linux 的 snap 包管理工具安裝Certbot,支持snap后可以使用如下命令安裝Certbot

sudo snap install --classic certbot?#安裝Certbot
sudo?ln -s /snap/bin/certbot /usr/bin/certbot?#創建一個符號鏈接,確保可以執行certbot命令(相當于快捷方式)

其他系統平臺

參考Certbot官網

🌐 單域名 SSL 證書

🔒 申請單域名 SSL 證書

如果你只需要為單個域名(如?example.com?和?www.example.com)申請證書,可以使用以下命令:

sudo certbot --nginx -d example.com -d www.example.com

--nginx 需要服務器預先安裝nginx,certbot獲取到證書后會自動通過修改nginx的配置將證書安裝到nginx上。

根據提示輸入郵箱地址,并同意服務條款,Certbot 將自動完成證書申請和安裝。

🔄 單域名自動續期

Let’s Encrypt 證書的有效期為?90 天,為了避免證書過期,我們可以使用?Cron Job?設置自動續期。

首先,你可以手動測試續期是否正常:

sudo certbot renew --dry-run

如果沒有報錯,可以繼續配置自動續期任務:

sudo crontab -e

在打開的編輯器中添加以下行,表示每天凌晨 2 點執行自動續期任務:

0 2 * * * /usr/bin/certbot renew --quiet

--quiet?參數表示靜默模式,不會輸出非錯誤信息。

單域名的操作非常簡單,就說到這里!!!

🌐 泛域名 SSL 證書

🛡? 申請泛域名 SSL 證書

泛域名證書(Wildcard Certificate)可以為同一主域名下的所有子域名提供 HTTPS 支持。例如,*.example.com?可以覆蓋?blog.example.comapi.example.com?等子域名。

使用 DNS 驗證申請泛域名證書

Let’s Encrypt 要求通過?DNS-01?驗證來申請泛域名證書。運行以下命令:

sudo certbot certonly --manual --preferred-challenges dns -d *.example.com -d example.com

Certbot 會要求你在 DNS 中創建一個特定的?TXT 記錄?記錄以驗證域名的所有權。

_acme-challenge.example.com IN TXT "certbot給出的隨機字符串"

前往你的域名 DNS 管理頁面,添加該記錄后,返回命令行按下?Enter
如圖:
?


大概等幾十秒鐘,確保 DNS 記錄在全網傳播開來,Certbot 可以查詢到。
Certbot 在執行驗證時會發起 DNS 查詢,如果能找到所需的 TXT 記錄并驗證其值,認證就會成功,然后就會頒發證書。證書頒發后,這條?TXT 記錄?就可以刪除了。

這個是手動添加刪除 DNS 對應的 TXT 記錄,這里只是演示Certbot頒發證書的過程,實際情況下最好采用自動化腳本添加和刪除 DNS 的 TXT 解析記錄。

🔄 泛域名設置自動續期

Let’s Encrypt 頒發的 SSL 證書有效期為?90 天,為了避免證書過期導致網站 HTTPS 中斷,自動續期?是必須要配置的。對于?泛域名證書,由于使用了?DNS-01 驗證,因此我們也需要使用相應的自動化腳本來管理 DNS TXT 記錄,從而實現自動續期。由于我購買的是騰訊云域名,這里我們以?騰訊云DNSPod?的 API 為例,來配置自動續期。

1.?創建自動化 DNS 腳本

首先,我們需要編寫兩個腳本用于處理?DNS-01?驗證的 DNS 記錄添加和刪除。假設你已經安裝了?騰訊云 CLI 工具 (tccli),,以下是?dnspod.sh?腳本的內容:
tccli安裝和使用參考?騰訊云 CLI 工具

#!/bin/bash
RECORD_FILE="/tmp/_acme-challenge.${CERTBOT_DOMAIN}_${CERTBOT_VALIDATION}"
if !?command -v tccli >/dev/null;?then
echo?"TCCLI is required: https://cloud.tencent.com/document/product/440" 1>&2
exit 1
fi
if [?"$1" =?"clean" ];?then
# 刪除 DNS TXT 記錄
RECORD_ID=$(cat?${RECORD_FILE})
if [ -n?"${RECORD_ID}" ];?then
tccli dnspod DeleteRecord --cli-unfold-argument \
--Domain?${CERTBOT_DOMAIN} \
--RecordId?${RECORD_ID} \
>/dev/null
fi
rm -f?${RECORD_FILE}
else
# 創建 DNS TXT 記錄
RECORD_ID=$(
tccli dnspod CreateRecord --cli-unfold-argument \
--Domain?${CERTBOT_DOMAIN} \
--SubDomain _acme-challenge \
--RecordType TXT \
--RecordLine 默認 \
--Value?${CERTBOT_VALIDATION} \
--TTL 600 \
| grep?"RecordId" | grep -Eo?"[0-9]+"
)
echo?${RECORD_ID} >?${RECORD_FILE}
sleep 20?# 等待 DNS 記錄傳播
fi

腳本中涉及到一些環境變量比如CERTBOT_DOMAINCERTBOT_VALIDATION等等,這是由certbot自動將相關的環境變量傳遞給這些腳本的。

參考:Certbot DNS驗證前后的鉤子

2.?配置自動續期命令

我們使用?certbot?的?--manual-auth-hook?和?--manual-cleanup-hook?參數,調用?dnspod.sh?腳本來自動添加和清理 DNS 記錄:

certbot renew --manual --preferred-challenges=dns \
--manual-auth-hook?"/path/to/dnspod.sh" \
--manual-cleanup-hook?"/path/to/dnspod.sh clean" \
--deploy-hook?"/path/to/renew_and_reload_nginx.sh"
  • --manual-auth-hook:在驗證開始時調用,用于創建 DNS TXT 記錄。
  • --manual-cleanup-hook:在驗證結束后調用,用于清理 DNS TXT 記錄。
  • --deploy-hook:在證書更新成功后調用,用于重啟并加載 Nginx 最新配置。
3.?配置 Crontab 定期續期任務

編輯?Crontab?文件,添加以下行,實現每 10 天凌晨 2 點自動嘗試續期證書:

0 2 */10 * * root certbot renew --manual --preferred-challenges=dns \
--manual-auth-hook?"/path/to/dnspod.sh" \
--manual-cleanup-hook?"/path/to/dnspod.sh clean" \
--deploy-hook?"/path/to/renew_and_reload_nginx.sh" >> /var/log/certbot-renew.log 2>&1
4.?重載 Nginx 配置

以下是?renew_and_reload_nginx.sh?的內容,用于在證書續期后重啟 Nginx 服務(假設使用 Docker 運行 Nginx):

#!/bin/bash
# 停止 nginx 服務
docker compose -f /path/to/compose.yml stop nginx
# 重新啟動 nginx 服務
docker compose -f /path/to/compose.yml up -d nginx
5.?驗證自動續期配置

在完成配置后,可以運行以下命令來測試續期流程,確保一切正常:

certbot renew --manual --preferred-challenges=dns --manual-auth-hook?"/path/to/dnspod.sh" --manual-cleanup-hook?"/path/to/dnspod.sh clean" --deploy-hook?"/path/to/renew_and_reload_nginx.sh" --dry-run

如果沒有錯誤提示,說明自動續期配置成功。

加上--dry-run表示使用Let's Encrypt的測試服務器。防止多次使用真實服務器頻繁頒發證書達到速率限制

🔍 深入解讀
  1. DNS 驗證和自動化挑戰

    • 泛域名證書使用?DNS-01 驗證,即要求在 DNS 中添加?_acme-challenge?的 TXT 記錄。這種方式可以驗證你對整個域名的控制權。
    • 使用 API 自動管理 DNS 記錄,可以避免手動添加和刪除 TXT 記錄的繁瑣操作,適合生產環境中的自動化需求。
  2. Crontab 定時任務

    • 由于 Let’s Encrypt 證書有效期為 90 天,我們配置 Crontab 每 10 天嘗試續期一次,以確保在證書到期前完成續期。
    • 任務執行日志會被重定向到?/var/log/certbot-renew.log,便于后續檢查和調試。
  3. Nginx 重載

    • 證書續期后,需要重新加載 Nginx 配置,以使新的證書生效。通過?docker compose?管理的 Nginx 服務,可以使用?up -d?命令實現無中斷重啟。
? 配置完成后的效果

完成上述配置后,你的服務器將能夠自動管理泛域名 SSL 證書,定期續期并自動應用新的證書配置。這將大大降低證書管理的工作量,同時保證網站的 HTTPS 加密連接始終有效。

你可以隨時使用以下命令檢查現有證書的狀態:

sudo certbot certificates

如果證書信息顯示正確,并且?expiry date?在未來日期,說明配置成功。


通過自動化腳本和 Certbot 工具的結合,你已經為你的泛域名 SSL 證書實現了從申請、安裝到續期的全流程自動化,讓你的網站可以輕松保持 HTTPS 安全連接。

📁 申請的 SSL 證書文件所在目錄

當使用?Certbot?成功申請到 SSL 證書后,證書文件將默認保存在以下目錄中:

/etc/letsencrypt/live/your-domain-name/

具體包含以下幾個文件:

  • cert.pem:這是你的?SSL 證書?文件。
  • privkey.pem:這是你的?私鑰?文件,務必妥善保管,切勿泄露。
  • chain.pem:這是?中間證書鏈?文件,用于驗證證書的完整性。
  • fullchain.pem:這是?完整證書鏈?文件,通常用于 Nginx 或 Apache 的 SSL 配置中。

例如,如果你的域名是?example.com,則目錄路徑為:

/etc/letsencrypt/live/example.com/

你可以使用以下命令查看證書詳細信息:

sudo certbot certificates

輸出示例:

Certificate Name: example.com
Domains: example.com www.example.com
Expiry Date: 2024-02-10 14:30:00+00:00 (VALID: 75 days)
Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem

提示:為了避免證書路徑錯誤,建議在 Nginx 或 Apache 配置中直接使用?fullchain.pem?和?privkey.pem?兩個文件。

nginx配置證書示例

server {
listen?80;
server_name example.com www.example.com;
location / {
return?301 https://$host$request_uri;
}
}
server {
listen?443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
}
}

如果使用docker nginx,可以通過docker掛載卷使用證書,比如我就是這樣使用的:
compose.yml:

services:
nginx:
image:?nginx:latest
networks:
-?spy
ports:
-?"80:80"
-?"443:443"
environment:
-?TZ=Asia/Shanghai?# 設置為上海時區
volumes:
# 主配置
-?./nginx/nginx.conf:/etc/nginx/nginx.conf:rw
# include配置
-?./nginx/conf.d/:/etc/nginx/conf.d/:rw
# 證書
-?/etc/letsencrypt/live/spystudy.cn/fullchain.pem:/etc/ssl/certs/spystudy.cn/fullchain.pem:rw
-?/etc/letsencrypt/live/spystudy.cn/privkey.pem:/etc/ssl/certs/spystudy.cn/private.pem:rw
# 日志
-?./nginx/logs/:/var/log/nginx/:rw

然后nginx配置文件:

server {
listen 443 ssl;
server_name spystudy.cn;
ssl_certificate /etc/ssl/certs/spystudy.cn/fullchain.pem;
ssl_certificate_key /etc/ssl/certs/spystudy.cn/private.pem;
return 301 https://www.spystudy.cn$request_uri;
}

🔍 驗證 HTTPS 配置

證書安裝完成后,可以通過訪問?https://example.com?檢查是否成功啟用了 HTTPS。你也可以使用以下命令查看證書狀態:

sudo certbot certificates

如果證書信息顯示正確,并且?expiry date?在未來日期,說明配置成功。

🛡? 常見問題及解決方法

1.?DNS 驗證失敗

檢查 DNS 記錄是否添加正確,并確保記錄已完全傳播,可以使用以下命令查看 DNS 解析狀態:

nslookup -q=txt _acme-challenge.example.com

2.?Nginx 配置沖突

如果 Certbot 無法自動修改 Nginx 配置文件,你可以手動更新 Nginx 配置文件(/etc/nginx/sites-available/default):

server {
listen?80;
server_name example.com www.example.com;
location / {
return?301 https://$host$request_uri;
}
}
server {
listen?443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
proxy_pass http://127.0.0.1:8080;
}
}

保存并測試 Nginx 配置:

sudo nginx -t
sudo systemctl reload nginx

🎉 總結

通過本文的教程,你已經學會了如何使用?Let’s Encrypt?免費獲取 SSL 證書,包括?單域名?和?泛域名?的配置,并且實現了?自動續期。此外,你還了解了?Certbot?工具的作用及工作原理。現在,你可以輕松為你的網站配置 HTTPS,保障用戶的安全體驗,如果你在配置證書過程中遇到任何問題,歡迎在下方留言。

如果你覺得這篇文章對你有所幫助,歡迎分享給更多需要的朋友!

🔗 參考鏈接

  • Let’s Encrypt 官方網站
  • Certbot 官方文檔
  • ACME 協議介紹

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93186.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93186.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93186.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一鍵自動化:Kickstart無人值守安裝指南

Kickstart文件實現自動安裝1. Kickstart文件概述1.1 定義與作用Kickstart文件是Red Hat系Linux發行版(如RHEL、CentOS、Fedora)用于實現自動化安裝的配置文件,采用純文本格式保存。它通過預設安裝參數的方式,使系統安裝過程無需人…

深度解讀 Browser-Use:讓 AI 驅動瀏覽器自動化成為可能

目錄 一、什么是 Browser-Use? 二、Browser-Use 的核心功能 1. AI 與瀏覽器的鏈接橋梁 2. 無代碼 / 低代碼操作界面 3. 支持多家 LLM 4. 開發體驗簡潔 可快速上手 三、核心價值與適用場景 四、與 Playwright 的結合使用 五、總結與展望 https://github.com…

React.memo、useMemo 和 React.PureComponent的區別

useMemo 和 React.memo 都是 React 提供的性能優化工具,但它們的作用和使用場景有顯著不同。以下是兩者的全面對比: 一、核心區別總結特性useMemoReact.memo類型React Hook高階組件(HOC)作用對象緩存計算結果緩存組件渲染結果優化目標避免重復計算避免不…

Lumerical INTERCONNECT ------ CW Laser 和 OPWM 組成的系統

Lumerical INTERCONNECT ------ CW Laser 和 OPWM 組成的系統 引言 正文 引言 這里我們來簡單介紹一下 CW Laser 與 OSA 組成的簡單系統結構的仿真。 正文 我們構建一個如下圖所示的仿真結構。 我們將 CWL 中的 power 設置為 1 W。 然后直接運行仿真查看結果如下: 雖然 …

想漲薪30%?別只盯著大廠了!轉型AI產品經理的3個通用方法,人人都能學!

在AI產品經理剛成為互聯網公司香餑餑的時候,剛做產品1年的月月就規劃了自己的轉型計劃,然后用3個月時間成功更換賽道,轉戰AI產品經理,漲薪30%。 問及她有什么上岸秘訣?她也復盤總結了3個踩坑經驗和正確路徑&#xff0c…

基于Hadoop的全國農產品批發價格數據分析與可視化與價格預測研究

文章目錄有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主項目介紹每文一語有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主 項目介紹 隨著我國農業數字化進程的加快,農產品批發市場每天都會產生海量的價格…

STM32在使用DMA發送和接收時的模式區別

在STM32的DMA傳輸中,發送使用DMA_Mode_Normal而接收使用DMA_Mode_Circular的設計基于以下關鍵差異:1. ?觸發機制的本質區別??發送方向(TX)?:由USART的?TXE標志(發送寄存器空)觸發?&#x…

【秋招筆試】2025.08.15餓了么秋招機考-第三題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍在線刷題 bishipass.com 03. A先生的商貿網絡投資 問題描述 A先生是一位精明的商人,他計劃在 n n n 個城市之間建立商貿網絡。目前有 m m

Socket 套接字的學習--UDP

上次我們大概介紹了一些關于網絡的基礎知識,這次我們利用編程來深入學習一下一:套接字Socket1.1什么是Socketsocket API 是一層抽象的網絡編程接口,適用于各種底層網絡協議,如 IPv4、IPv6,. 然而, 各種網絡協議的地址格式并不相同。1.2套接字的分類套接字…

AI - MCP 協議(一)

AI應用開發的高級特性——MCP模型上下文協議,打通AI與外部服務的邊界。 ************************************************************************************************************** 一、需求分析 當你的AI具備了RAG的能力,具備了調用工具的…

在es中安裝kibana

一 安裝 1.1 驗證訪問https的連通性 # 測試 80 端口(HTTP) curl -I -m 5 http://目標IP:端口號 說明: -I:僅獲取 HTTP 頭部(Head 請求),不下載正文,減少數據傳輸。 -m 5&#x…

嵌入式開發學習———Linux環境下網絡編程學習(二)

UDP服務器客戶端搭建UDP服務器代碼#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h>#define PORT 8080 #define BUFFER_SIZE 1024int main() {int sockfd;char buffer[BUFFER_SIZE…

UVa1465/LA4841 Searchlights

UVa12345 UVa1465/LA4841 Searchlights題目鏈接題意輸入格式輸出格式分析AC 代碼題目鏈接 本題是2010年icpc亞洲區域賽杭州賽區的I題 題意 在一個 n 行 m 列&#xff08;n≤100&#xff0c;m≤10 000&#xff09;的網格中有一些探照燈&#xff0c;每個探照燈有一個最大亮度 k&…

詳解區塊鏈技術及主流區塊鏈框架對比

文章目錄一、區塊鏈技術棧詳解二、主流區塊鏈框架對比1. 公有鏈&#xff08;Public Blockchain&#xff09;2. 聯盟鏈&#xff08;Consortium Blockchain&#xff09;3. 私有鏈&#xff08;Private Blockchain&#xff09;三、技術選型建議1. 按需求選擇框架2. 開發工具與生態四…

大模型 + 垂直場景:搜索 / 推薦 / 營銷 / 客服領域開發有哪些新玩法?

技術文章大綱&#xff1a;大模型 垂直場景的新玩法大模型與搜索領域的結合大模型在搜索領域的應用可以顯著提升搜索結果的準確性和用戶體驗。利用大模型進行語義理解和上下文關聯&#xff0c;能夠實現更精準的意圖識別。結合知識圖譜和動態索引優化&#xff0c;可以增強長尾查…

p5.js 3D盒子的基礎用法

點贊 關注 收藏 學會了 如果你剛接觸 p5.js&#xff0c;想嘗試 3D 繪圖&#xff0c;那么box()函數絕對是你的入門首選。它能快速繪制出 3D 長方體&#xff08;或正方體&#xff09;&#xff0c;配合簡單的交互就能做出酷炫的 3D 效果。本文會從基礎到進階&#xff0c;帶你吃…

【動態規劃 完全背包 卡常】P9743 「KDOI-06-J」旅行|普及+

本文涉及知識點 C動態規劃 完全背包 C記憶化搜索 「KDOI-06-J」旅行 題目描述 小 C 在 C 國旅行。 C 國有 nmn\times mnm 個城市&#xff0c;可以看做 nmn\times mnm 的網格。定義 (i,j)(i,j)(i,j) 表示在網格中第 iii 行第 jjj 列的城市。 該國有 222 種交通系統&#x…

pytest框架-詳解

目錄 一、前言 二、pytest安裝 2.1、安裝 2.2、驗證安裝 2.3、pytest文檔 三、pytest框架的約束 3.1、 python的命名規則 3.2、 pytest的命名規則 四、pytest的運行方式 4.1、主函數運行 4.2、命令行運行 五、pytest配置文件pytest.ini文件 六、前置和后置 七、as…

【遞歸、搜索與回溯算法】DFS解決FloodFill算法

FloodFill算法簡介一、[圖像渲染](https://leetcode.cn/problems/flood-fill/description/)二、[島嶼數量](https://leetcode.cn/problems/number-of-islands/description/)三、[島嶼的最大面積](https://leetcode.cn/problems/max-area-of-island/description/)四、[被圍繞的區…

解決網絡傳輸中可能出現的“粘包”

先理解核心問題&#xff1a;什么是“TCP粘包”&#xff1f; TCP 就像一條水管&#xff0c;數據通過水管從一端傳到另一端。但它有個特點&#xff1a;不會按“發送時的小包”來劃分&#xff0c;而是把數據當成連續的字節流。 比如&#xff1a; 你分兩次發數據&#xff1a;第一次…