Skip to content
0

发布博客

发布博客

方式1:CNB+Eo Pages(推荐)

这里推荐使用CNB+Eo Pages,非常丝滑。

CNB配合eo托管静态博客》(腾讯的eo Pages也的确丝滑)

image-20250916052145610

具体步骤:

  1. 注册CNB,注册腾讯的EO;
  2. 把Teek项目代码上传到CNB仓库;
  3. 配置CNB流水线,一键发布博客到EO的Pages;

备注:

CNB是腾讯推出的云原生构建产品,EO是腾讯推出的免费cdn;

方式2:传统的云服务器部署

传统的云服务器部署,然后利用nginx代理。

(1)自己电脑得提前安装好git和nodejs:

(2)在自己winodws pc上部署Teek

bash
#来到自己电脑d盘
cd /d/
#项目拉取
git clone https://cnb.cool/onedayxyy/vitepress-theme-teek-one-public.git

cd /d/vitepress-theme-teek-one-public
#依赖安装(只能用 pnpm 安装依赖)
pnpm install

#项目本地运行
pnpm docs:dev #本地运行

#项目打包
pnpm docs:build

执行pnpm docs:dev后,浏览器默认就会打开一个http://localhost:5173/网页:(恭喜你,此时你的Teek博客已经部署完成了)

(3)将Teek生成的静态文件推送到云服务器的nginx站点目录下

利用pnpm docs:build 命令打包好静态文件,然后把docs\.vitepress\dist路径下的内容直接传输到自己的云服务器的nginx站点目录下,这样其它小伙伴就可以通过域名来访问你的博客了。

特别注意:

一般情况,自己的云服务器都是通过nginx来代理静态站点的,但是这里需要单独做一个额外的配置,否则自己的Teek博客部署到云服务器后,刷新url会报404。

具体配置方法如下:

vim /etc/nginx/conf.d/onedayxyy.cn.conf (这里编辑自己的nginx配置文件就好)

bash
    location / {
        index index.html index.htm;
        try_files $uri $uri.html $uri/ =404; #添加这一行

		……
    }

image-20250516062832580

配置后重启nginx: nginx -s reload

nginx完整配置如下:

bash
[root@wiki ~]# cat /etc/nginx/conf.d/onedayxyy.cn.conf 
server {
    listen 80;
    server_name onedayxyy.cn;
    #配置https重定向
    return 301 https://$host$request_uri;
}

server {
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;


    listen  443 ssl;
    server_name  onedayxyy.cn;

    root /root/rsync/rsync-vitepress/dist;    
    location / {
        index index.html index.htm;
        try_files $uri $uri.html $uri/ =404;

        # non existent pages
        error_page 404 /404.html;

        # a folder without index.html raises 403 in this setup
        error_page 403 /404.html;

        # adjust caching headers
        # files in the assets folder have hashes filenames
        location ~* ^/assets/ {
            expires 1y;
            add_header Cache-Control "public, immutable";
        }
    } 

    location /images {
        alias /images;
        index index.html;
      valid_referers none blocked *.onedayxyy.cn onedayxyy.cn *.gitee.com gitee.com *.cnb.cool cnb.cool *.sleele.com localhost 127.0.0.1;
      if ( $invalid_referer ) {
           # 如不满足,指定访问如下资源
           rewrite ^/ https://onedayxyy.cn/error/1.png;
           return 403;
      }
    }
    

    location /error {
        autoindex on; # 启用目录索引
        alias /FdangDaoLianImages;
        index index.html;   # 默认显示index.html文件,如果没有则列出目录内容
    }   
    

    ssl_certificate             /etc/letsencrypt/live/onedayxyy.cn/fullchain.pem;
    ssl_certificate_key         /etc/letsencrypt/live/onedayxyy.cn/privkey.pem; 

    ssl_session_timeout 5m;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=31536000";
    
    access_log /var/log/nginx/onedayxyy.cn.https.log;
}

(4)验证

访问自己域名:

https://onedayxyy.cn/

image-20250502073710566


扩展

如何将本地Teek生成的静态文件推送到云服务器的nginx站点目录,有多种办法(见如下详细链接):

  1. shell一键发布 (shell一键发布版内容到teek网站)
  2. 或者利用其它传输软件;(例如sftp,ftp,winscp……)

结束。

最近更新