跳到主要内容

将Teek网站托管到EdgeOne的Pages

最后更新于:

将Teek网站托管到EdgeOne的Pages

把Teek静态文件从云服务器换到edgeone的pages服务里

image-20250727205232312

目录

[[toc]]

[toc]

背景

2025年7月27日替换成功,测试成功。💖

把Teek静态文件从云服务器换到edgeone的pages服务里:

此时我的云服务器只提供nginx图床服务、twikoo、umami服务;

当前云服务器 .cnb.yml配置

 1master:
 2  push:
 3    - runner:
 4        cpus: 16
 5      services:
 6        - docker
 7        - git-clone-yyds
 8      imports:
 9        - https://cnb.cool/onedayxyy/secret/-/blob/main/envs.yml     
10      docker:
11        image: docker.cnb.cool/znb/images/node:18
12        volumes:
13          - /data/.cache:copy-on-write #声明式的构建缓存
14      stages:
15        - name: set env
16          script: echo -n $(date "+%Y-%m-%d %H:%M")
17          exports:
18            info: CUSTOM_ENV_DATE_INFO      
19        - name: 🖨️ 打印环境
20          if: |
21            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
22          script: |
23            node -v && npm -v && yarn -v && pnpm -v
24        - name: 📦️ 安装依赖 
25          if: |
26            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]          
27          script: |
28            pnpm install
29            
30        - name: ⚗️ 编译项目
31          if: |
32            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]        
33          script: |
34            pnpm docs:build   # VitePress 专用命令
35        - name: 🚚 发布制品
36          if: |
37            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]            
38          image: tencentcom/rsync
39          settings:
40            user: ${SSH_USER}
41            key: ${SSH_KEY}
42            port: 22
43            hosts:
44              - ${ECS_IP}
45            source: docs/.vitepress/dist/
46            target: /root/rsync/rsync-vitepress/dist/
47            delete: true
48            prescript:
49              - echo "prescript"
50              - ls -l  /root/rsync/rsync-vitepress/dist/
51            # script:
52            #   - echo "after script"
53            #   - ls -l /root/rsync/rsync-vitepress/dist/
54            #   - date
55            #   # - bash  /root/website_music.sh
56            #   - aliyun cdn RefreshObjectCaches --ObjectType File --ObjectPath "onedayxyy.cn/" #刷新阿里云cdn缓存
57
58
59
60        - name: 🧘‍♂️ 刷新缓存
61          image: docker.cnb.cool/znb/cdn-refresh
62          settings:
63            ak: "${TENCENT_OPSRE_AK}"
64            sk: "${TENCENT_OPSRE_SK}"
65            kind: "tencenteo"
66            rtype: "path"
67            domain: "onedayxyy.cn"
68            urls:
69              - "https://onedayxyy.cn/"
70
71        #同步仓库到gitee                  
72        - name: sync to gitee
73          image: tencentcom/git-sync
74          settings:
75            branch: master
76            auth_type: https
77            username: ${GIT_USERNAME}
78            password: ${GIT_ACCESS_TOKEN}
79            target_url: https://gitee.com/onlyonexl/vitepress-theme-teek-one-private.git
80            # git_email: 'github-actions[bot]@users.noreply.github.com'
81
82        - name: 🔔 发布通知
83          image: tencentcom/wecom-message
84          settings:
85            robot: ${WECOM_BOT}
86            msgType: markdown
87            content: |
88              > **🎉 One Blog 又一次发布成功啦!**   
89              > **构建时间:** $CUSTOM_ENV_DATE_INFO          
90              > **构建id:** $CNB_BUILD_ID  
91              > **提交id:** $CNB_COMMIT_SHORT            
92              > **构建分支:** $CNB_BRANCH
93              > **提交信息:** $CNB_COMMIT_MESSAGE_TITLE
94              > **提交者:** $CNB_COMMITTER
95              > **仓库地址:** [$CNB_REPO_URL_HTTPS]($CNB_REPO_URL_HTTPS)
96              > **我的网站:** [onedayxyy.cn](https://onedayxyy.cn/)

替换后 Pages .cnb.yml配置

  1master:
  2  push:
  3    - runner:
  4        cpus: 16
  5      services:
  6        - docker
  7        - git-clone-yyds
  8      imports:
  9        - https://cnb.cool/onedayxyy/secret/-/blob/main/envs.yml     
 10      docker:
 11        image: docker.cnb.cool/znb/images/node:18
 12        volumes:
 13          - /data/.cache:copy-on-write #声明式的构建缓存
 14      stages:
 15        - name: set env
 16          script: echo -n $(date "+%Y-%m-%d %H:%M")
 17          exports:
 18            info: CUSTOM_ENV_DATE_INFO      
 19        - name: 🖨️ 打印环境
 20          if: |
 21            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]
 22          script: |
 23            node -v && npm -v && yarn -v && pnpm -v
 24        - name: 📦️ 安装依赖 
 25          if: |
 26            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]          
 27          script: |
 28            pnpm install
 29            
 30        - name: ⚗️ 编译项目
 31          if: |
 32            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]        
 33          script: |
 34            pnpm docs:build   # VitePress 专用命令
 35        - name: 🚚 部署到Pages
 36          if: |
 37            [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]            
 38          image: node:22
 39          script: npx edgeone pages deploy ./docs/.vitepress/dist --name vitepress-theme-teek-one-private --token $EDGEONE_PAGES_API_TOKEN
 40          
 41        # - name: 🚚 发布制品 (把Teek静态文件从云服务器)
 42        #   if: |
 43        #     [ "$CNB_COMMIT_MESSAGE_TITLE" = "BUILD" ]            
 44        #   image: tencentcom/rsync
 45        #   settings:
 46        #     user: ${SSH_USER}
 47        #     key: ${SSH_KEY}
 48        #     port: 22
 49        #     hosts:
 50        #       - ${ECS_IP}
 51        #     source: docs/.vitepress/dist/
 52        #     target: /root/rsync/rsync-vitepress/dist/
 53        #     delete: true
 54        #     prescript:
 55        #       - echo "prescript"
 56        #       - ls -l  /root/rsync/rsync-vitepress/dist/
 57            # script:
 58            #   - echo "after script"
 59            #   - ls -l /root/rsync/rsync-vitepress/dist/
 60            #   - date
 61            #   # - bash  /root/website_music.sh
 62            #   - aliyun cdn RefreshObjectCaches --ObjectType File --ObjectPath "onedayxyy.cn/" #刷新阿里云cdn缓存
 63
 64
 65
 66        # - name: 🧘‍♂️ 刷新缓存
 67        #   image: docker.cnb.cool/znb/cdn-refresh
 68        #   settings:
 69        #     ak: "${TENCENT_OPSRE_AK}"
 70        #     sk: "${TENCENT_OPSRE_SK}"
 71        #     kind: "tencenteo"
 72        #     rtype: "path"
 73        #     domain: "onedayxyy.cn"
 74        #     urls:
 75        #       - "https://onedayxyy.cn/"
 76
 77        #同步仓库到gitee                  
 78        - name: sync to gitee
 79          image: tencentcom/git-sync
 80          settings:
 81            branch: master
 82            auth_type: https
 83            username: ${GIT_USERNAME}
 84            password: ${GIT_ACCESS_TOKEN}
 85            target_url: https://gitee.com/onlyonexl/vitepress-theme-teek-one-private.git
 86            # git_email: 'github-actions[bot]@users.noreply.github.com'
 87
 88        - name: 🔔 发布通知
 89          image: tencentcom/wecom-message
 90          settings:
 91            robot: ${WECOM_BOT}
 92            msgType: markdown
 93            content: |
 94              > **🎉 One Blog 又一次发布成功啦!**   
 95              > **构建时间:** $CUSTOM_ENV_DATE_INFO          
 96              > **构建id:** $CNB_BUILD_ID  
 97              > **提交id:** $CNB_COMMIT_SHORT            
 98              > **构建分支:** $CNB_BRANCH
 99              > **提交信息:** $CNB_COMMIT_MESSAGE_TITLE
100              > **提交者:** $CNB_COMMITTER
101              > **仓库地址:** [$CNB_REPO_URL_HTTPS]($CNB_REPO_URL_HTTPS)
102              > **我的网站:** [onedayxyy.cn](https://onedayxyy.cn/)

关闭nginx上的主域名服务

1cd /etc/nginx/conf.d/
2mv onedayxyy.cn.conf{,.bak}
3nginx -s reload

onedayxyy.cn.conf配置如下:

 1[root@wiki conf.d]# cat onedayxyy.cn.conf.bak 
 2server {
 3    listen 80;
 4    server_name onedayxyy.cn;
 5    #配置https重定向
 6    return 301 https://$host$request_uri;
 7}
 8
 9server {
10    gzip on;
11    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
12
13
14    listen  443 ssl;
15    server_name  onedayxyy.cn;
16
17    root /root/rsync/rsync-vitepress/dist;    
18    location / {
19        index index.html index.htm;
20        try_files $uri $uri.html $uri/ =404;
21
22        # non existent pages
23        error_page 404 /404.html;
24
25        # a folder without index.html raises 403 in this setup
26        error_page 403 /404.html;
27
28        # adjust caching headers
29        # files in the assets folder have hashes filenames
30        location ~* ^/assets/ {
31            expires 1y;
32            add_header Cache-Control "public, immutable";
33        }
34    } 
35
36
37    location /time-line {
38        alias /root/time-line;
39        index index.html index.htm;
40    }
41
42    ssl_certificate             /etc/letsencrypt/live/onedayxyy.cn/fullchain.pem;
43    ssl_certificate_key         /etc/letsencrypt/live/onedayxyy.cn/privkey.pem;
44
45    ssl_session_timeout 5m;
46    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
47    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
48    ssl_prefer_server_ciphers on;
49    add_header Strict-Transport-Security "max-age=31536000";
50    
51    access_log /var/log/nginx/onedayxyy.cn.https.log;
52}

来到eo pages服务

此时,直接推送本地仓库,再来到eo pages服务,观察现象

image-20250727174243518

image-20250727174319336

添加自定义域名:(eo Pages这里域名配置)

image-20250727174349215

image-20250727174418591

image-20250727174434551

image-20250727204627090

阿里云域名配置:

image-20250727204447061

eo这里不需要加速主域名的:

image-20250727204535153

配置完成。

测试

完美:https://onedayxyy.cn/

image-20250727204657924

使用体验

  • 感觉eo Pages比云服务器发布慢好多……(云服务器发布方式只需要4min,而Pages发布需要8min)
  • Pages方式打开网站速度会更快一点;

image-20250728064355016

扩展

gpt

我现在把自己的静态网站托管在了腾讯的EdgeOne的Pages服务里(我的域名为onedayxyy.cn),请问: 1.EdgeOne的Pages是不是自带cdn加速呢? 2.如果EdgeOne的Pages自带cdn加速,我还需要用腾讯的EdgeOne给自己主站域名onedayxyy.cn加速嘛?

回答

针对您关于 腾讯云 EdgeOne Pages 服务 的 CDN 加速和域名优化问题,以下是详细解答:


1. EdgeOne Pages 是否自带 CDN 加速?

是的,EdgeOne Pages 默认集成 CDN 加速,具体特性如下:

  • 全球节点覆盖:依托腾讯云全球 2800+ 边缘节点,自动缓存静态资源(HTML/CSS/JS/图片等)。
  • 智能缓存策略:默认遵循 Cache-Control 头部配置,支持自定义缓存规则(如文件类型、路径匹配)。
  • HTTPS 加速:自动签发免费 SSL 证书(支持 TLS 1.3),强制 HTTPS 访问提升安全性。
  • 性能优化:支持 Brotli/Gzip 压缩、HTTP/2、QUIC 协议等加速技术。

验证方法
访问您的网站 onedayxyy.cn,通过浏览器开发者工具(Network 面板)检查响应头,若存在 X-Cache-Lookup: Hit From EdgeOne 或类似字段,即表示命中 CDN。


2. 是否需要额外为 onedayxyy.cn 启用 EdgeOne 加速?

需分场景判断

场景一:仅使用 EdgeOne Pages 托管静态网站

  • 无需额外配置
    Pages 内置的 CDN 已足够覆盖静态内容加速需求,直接访问域名 onedayxyy.cn 即可享受加速效果。

场景二:需加速动态内容或全站(含非-Pages 服务)

  • 建议启用 EdgeOne 全站加速
    若您的 onedayxyy.cn 还包含动态 API、后端服务(如自建服务器、云函数等),可通过以下步骤扩展加速:
    1. 接入 EdgeOne 控制台:将 onedayxyy.cn 添加为 EdgeOne 的“站点”。
    2. 配置 DNS 解析:将域名 NS 记录指向 EdgeOne 提供的 DNS 服务器(如 ns[1-4].edgeone.tencentcloudapi.com)。
    3. 优化规则
      • 静态资源:优先走 Pages 服务(通过 CNAME 指向 Pages 默认域名)。
      • 动态请求:配置 EdgeOne 的“智能路由”或“回源策略”指向您的源站。

对比总结

功能EdgeOne Pages 内置 CDNEdgeOne 全站加速
加速范围仅静态资源(Pages 托管内容)全站(静态+动态)
自定义规则有限(依赖 Pages 配置)灵活(支持缓存、安全、WAF 等)
适用场景纯静态网站混合架构(前后端分离、API 等)

操作建议

  1. 纯静态网站
    保持当前 Pages 托管即可,无需额外操作,内置 CDN 已最优处理。
  2. 需增强控制
    若需自定义缓存策略、防御 DDoS 或优化 SEO(如自定义 HTTP 头),可启用 EdgeOne 全站加速,但需注意:
    • 避免重复加速:在 EdgeOne 控制台中,为 Pages 服务的路径设置“直连”或优先级规则,防止多层缓存。

常见问题

Q:EdgeOne Pages 和 EdgeOne 全站加速会冲突吗?
A:不会冲突,但需合理配置。例如:

  • onedayxyy.cn 的根路径(/)指向 Pages,子路径(如 /api/)指向其他服务源站。

Q:如何验证 CDN 生效?
A:通过以下命令检查响应头:

1curl -I https://onedayxyy.cn
2# 若看到 `X-EO-Status: Hit` 或 `X-Cache: Hit` 即为命中 CDN。

如有更复杂需求(如多地域负载均衡),可结合腾讯云 EdgeOne 智能加速 进一步

最新文章

文档导航