前言
最早用bitcron来管理发布博客,由于工作忙碌,博客疏于管理。近期发现bitcron也后续可能不维护了,还是自己迁移到云服务器上自己管理了。以下内容小做总结,仅供自己记录,不是一步一步的详细步骤。
安装hexo和主题
主题我用的是next相对成熟点,安装hexo和主题可以参考以下官网即可:
我用的hexo版本6.1.0,hexo官网有些信息较老,可以结合别人较新的博客一起参考。
我使用到插件
虽然像next theme支持了很多插件,所有插件安装都先执行npm i --save,这样packson.json中会添加依赖
评论
使用的gitalk
启动css js
package.json需要安装
参考资料:https://river106.cn/posts/9fc08c19.html?highlight=hexo
algolia搜索
参考next主题的官方文档即可,注意配置项,官方文档写的不完整,我的如下:
1 2 3 4 5 6 algolia: applicationID: 'your' apiKey: 'your' adminApiKey: 'your' indexName: 'hexo-blog' chunkSize: 5000
设置站点地图
1 2 npm install hexo-generator-baidu-sitemap --save npm install hexo-generator-sitemap --save
参考: Hexo 提交百度和 Google 谷歌收录
语雀文章同步
注意语雀文章header都需要增加同步信息,否则同步后标题看不到。在云服务器上自己编写好部署脚本其实也不麻烦,我就没用Github action做CICD。不过图床替换腾讯COS比较实用,阿里云OSS的有bug。我的启动脚本可以分享下。
1 2 3 4 5 6 7 # !/bin/bash hexo clean hexo g yuque-hexo clean yuque-hexo sync hexo algolia sh stop.sh
1 2 # !/bin/bash nohup hexo server -p 80 &
1 ps aux | grep hexo |awk '{print $2}'| head -n 1|xargs kill -9
可以参考文章:语雀云端写作Hexo+Github Actions+COS持续集成
markdown渲染插件
参考:hexo-renderer-markdown-it 插件 详解
统计pv/uv插件
使用leancloud:https://leancloud.cn
安装依赖后,可以直接在next-theme中开启
1 npm install hexo-leancloud-counter-security
热门阅读下载av-core-mini.js放到本地,现在CDN被封了。可以到下面地址下载
https://unpkg.com/browse/leancloud-storage@4.12.2/dist/
参考资料:
CDN
国内CDN容易被墙,可以用next-theme 8.x的版本直接配置下
参考:https://www.chengxiaobai.com/trouble-maker/customize-cdn-provider-for-hexo-theme-next
其他设置
next theme的menu去掉相关注释
执行命令新增page即可
1 hexo new page tags/categories
首页放归档
hexo配置设置如下即可,然后next主题那边隐藏archive按钮。这样也没必要用hexo-excerpt这样的插件做文章缩略。归档更加清晰,只看标题就够了。
�
nginx配置和404
注意点:
user必须和你站点资源的归属者一致,否则nginx启动有问题报错403
root填写自己的站点资源路径,hexo一般是public下的资源
nginx配置功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ # use root to avoid 403 forbidden user root; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name kaimingwan.com; ssl_certificate "/etc/nginx/cert/kaimingwan.pem"; ssl_certificate_key "/etc/nginx/cert/kaimingwan.key"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers PROFILE=SYSTEM; ssl_prefer_server_ciphers on; location / { root /root/hexo-blog/public; # 博客网站主目录 index index.php index.html index.htm; } error_page 404 404.html; location = /root/hexo-blog/public/404/404.html { } } server { listen 80; server_name kaimingwan.com; rewrite ^(.*)$ https://kaimingwan.com; #将所有HTTP请求通过rewrite指令重定向到HTTPS。 } }
[
](https://blog.bombox.org/2016-04-28/hexo-no-generate-categories-tags-index-page/ )