最近用hexo
折腾个人博客。
我发现,几乎所有的教程,都有一步将项目文件托管到GitHub
,然后用GitHub pages
发布页面,然后再解析自己的域名。
这事为了方便没有服务器发布页面的用户使用的,我理解。
但是我有自己的服务器,有公网 ip ,有自己的域名,是不是就能跳过这一步?
我的做法是,我直接在服务器上安装好了hexo
,然后直接hexo s
,就能通过ip:port
访问了。
那我再通过nginx
做反向代理,将域名解析过来不就完事了。
但是遇到一个问题,让我觉得不够优雅
因为我发现只有hexo s
不是默认挂在后台执行,如果按照我的思路,就需要用 nohup 挂在后台,然后如果修改一个一个页面,就要杀掉那个进程,网站关一会儿,修改完再挂上去,感觉好笨啊。
所以想咨询下折腾过的,我这种情况,在不使用 GitHub 情况下,如何优雅一点?
另外还想问下:hexo s 、hexo g 、hexo d
,到底啥关系,不同教程介绍的先后执行顺序都不一样,但是在我这里,只有 hexo s 能更新页面。
最后说下,为什么不想用 GitHub pages ,就是因为速度慢,并且如果用 Github pages 发布网站,再绑定一道域名,岂不是中间多了一层跳转,牺牲了速度?
1
maichael 2023-03-01 15:11:15 +08:00
你 hexo build 出来也就是个静态文件,直接 nginx 挂出来不就好了。
|
2
bluehr 2023-03-01 15:13:58 +08:00
1.部署到你的服务器上肯定是可以的呀,hexo 本质上最后就是生成的静态资源,只要能访问到就可以了。
2.为什么教程都是部署到 github pages ,这个是因为足够简单成本低,我就算有个人服务器,还是喜欢部署到 github pages ,因为白嫖微软的流量美滋滋,再说你自己的服务器怕是没有 github 高可用吧 3.hexo s 、hexo g 、hexo d ,到底啥关系, 其实你把官方文档一看你就明白了 https://hexo.io/zh-cn/docs/commands |
3
totoro625 2023-03-01 15:15:01 +08:00
hexo s 是启动内置服务器,需要 nodejs 性能的,nginx 反代失去了静态博客的意义
通常用于本地临时调试 hexo g 是生成静态文件,自有服务器的话,把 nginx 指向生成的静态文件所在目录即可 hexo d 是推送 hexo g 生成的静态文件到托管站点,一般推送到 github 或 OSS 等对象存储 如果用其他上传服务的话可以不用自带的 hexo d |
4
bluehr 2023-03-01 15:15:18 +08:00
4.“并且如果用 Github pages 发布网站,再绑定一道域名” 这个无非是多了一次域名解析的时间,这个完全没必要纠结吧,多出来的时间你不可能感知得到
|
5
cwcc 2023-03-01 15:15:34 +08:00 2
只能说是大部分教程都是这样做,手动部署其实更简单。只需要 build 出来静态文件的目录放到 nginx /var/www/xxx 下面,然后配置 nginx 的域名、路径过去就行了。因为写文档的人默认你会这些,且自己在国内域名、服务器、备案等流程比搭建博客繁琐很多。
(其实说白了还是 Pages 适用于大多数情况,而且大多数人也不会专门为了搭建 hexo 买台贼贵的 VPS ) |
6
guowq 2023-03-01 15:16:51 +08:00 via Android
静态的优势就是不用维护服务器,不怕 ddos cc
非要用服务器就去 wp 吧,主题插件很丰富 |
7
enchilada2020 2023-03-01 15:18:22 +08:00 via Android
静态博客就这点好 随便一个免费 pages 服务就行了 不一定非要 GitHub 的
|
8
vazo 2023-03-01 16:20:57 +08:00
托管到 github 养老,服务器和域名都不用个人维护.
|
9
feitxue 2023-03-01 16:30:22 +08:00 1
说白了还是没有去看 hexo 本身的一手文档导致的问题
一手文档阅读还是有必要的 |
10
fenglangjuxu 2023-03-01 16:36:23 +08:00 via iPhone
可以先 hexo g 然后把 public 目录同步到你的服务器,然后就是一个静态服务了
|
11
totoro52 2023-03-01 16:37:21 +08:00
生成出的页面全是静态,直接 nginx 不就行了吗
|
12
yleoer 2023-03-01 16:49:54 +08:00
我是通过 gitlab 的 workflows 自动生成静态文件,推送到服务器。目前就是本地写好以后,git push 上去就能自动更新了。
|
13
nightwitch 2023-03-01 17:13:45 +08:00
因为用自己的服务器,维护 ssl 之类的很麻烦
|
14
falcon05 2023-03-01 17:17:59 +08:00
hexo g 按条件触发就可以了,你写一个接口,比如 git push 上去之后,hook 发一个请求到你的服务器接口,接口收到后执行一次 git pull 和 hexo g 就更新了
|
15
ggp1ot2 OP @totoro625 #3 谢谢,这样说,立马就明白了,比很多教程咔咔说一堆都好
@bluehr #4 我之前亲测过,可能是我的问题?当时做了跳转,速度明显慢了,可能我的电脑访问 GitHub 就慢 @guowq #6 原来还有这个思路,使用 hexo 的本身就是为了没有服务器的用户 @feitxue #9 一手文档是这个吗? https://hexo.io/zh-cn/docs/,说实话,我觉得文档写的一般,有点类似开发人员写的,对新过来的用户很多地方写的不清楚,我自己折腾 web 框架也好多个了,这个说实话,很一般,至少 hexo s d g 说的没有 @totoro625 #3 说的让人明白 @totoro52 #11 @fenglangjuxu #10 谢谢,仿佛自己傻掉了,一直想着 hexo 怎么弄,这本质上就是一个静态文件部署的问题了 @yleoer #12 谢谢,这个思路也学习到了,就是想省事,但是经常在不同设备工作,不想都从 GitHub 拉一遍 @nightwitch #13 是的,这个角度没想到,之前配置其他网站,用的免费证书,每年维护一次,挺麻烦的 |
16
feitxue 2023-03-01 17:55:58 +08:00
一手文档确实没有楼上那个朋友总结的好,当然,这种总结也是大概率建立在人家对一手文档阅读过的前提。
大概率你当局者迷了,没反应过来这玩意儿实质静态文件部署,说穿了就没啥技术含量了。 |
17
yyh0808 2023-03-01 17:57:42 +08:00
我 hexo 博客,连 nginx 都没用,express 框架 js 写路由直接转发请求完事了、、、每年就是证书到期换一下,只用 nodejs 就能搞定
|
18
4s4IYOLfT1s3InRR 2023-03-01 17:58:00 +08:00
完全可以
|
19
SenLief 2023-03-01 18:03:50 +08:00
hexo g 有个-w 的选项,可以监控文件变动。
其实 hexo 有很多的部署插件的,如果本地生成静态文件,用 rsync 插件推送给服务器不就好了。 我现在就是 Obsidian 编辑器和管理器,hexo 生成静态文件,利用部署插件部署到又拍云,备案的域名可以自带 cdn 多好。 |
20
sannaha 2023-03-01 18:16:04 +08:00 via Android 1
git hook+nginx 参考 https://www.jianshu.com/p/5cf20649f328
|
21
itskingname 2023-03-01 18:16:57 +08:00
我是使用 Azure 的云函数来部署的。
|
22
nifanle7 2023-03-01 20:41:47 +08:00 via iPhone
@cwcc 请问有没有优雅点的同步方式?现在阿里云的虚拟云主机都是用 FTP 软件手动传到服务器的。
|
23
Trim21 2023-03-01 20:44:56 +08:00 1
|
24
Trim21 2023-03-01 20:47:03 +08:00
hexo 正常的用法是写完博客之后 generate ( hexo g )生成静态文件,然后 deploy ( hexo d )到某个地方,再然后就不用管了。
hexo s 是写博客或者修改主题才会用到。 |
25
brust 2023-03-01 20:49:08 +08:00
还是用 notion 写博客爽
|
26
wheat0r 2023-03-01 21:37:39 +08:00
自建的话,建议去看官方文档,简单来说就是把静态页面发布出来就好。
我之前看到有大神的文档建议用 nginx 反代 hexo s 的端口,笑死我了 |
27
Byzliu 2023-03-01 21:48:18 +08:00
有服务器了可以不用静态博客,wordpress 或者 typecho 这种带后台的动态博客应该更方便一点,也不用单独的添加评论系统了,服务器部署 hexo 就是把你生成的静态文件上传到服务器网站目录就好了,托管到 github 好处就是不怕被攻击,也没有任何费用
|
28
Jxnujason 2023-03-01 23:03:39 +08:00 via Android
我用的是 github 的 workflow ,另外 hexo 静态生成是真的慢,前端时间换成 hugo 了
|
29
dcsuibian 2023-03-01 23:05:12 +08:00
Hexo 官方文档,“部署”章节第一篇就是“GitHub Pages”,说明这么做的人很多而且也是比较推荐的做法了
GitHub 托管多好啊,免费、稳定,不用在意 https 证书、带宽、ddos 攻击等细枝末节(图床还是要管的),当然选 GitHub 就意味着基本放弃了国内那些用百度的用户了。我连域名都没绑。 至于速度,实际去试试呗。一个普普通通的 CNAME 解析而已,人完全感知不到的。 你还可以先拿到 github 的 ip ,然后做个 A 记录,那就完全没差别了。(如果 GitHub 不经常换 ip 的话) |
30
cwcc 2023-03-01 23:21:51 +08:00 1
@nifanle7 如果你愿意开源你的源 md 文件,可以用一个 github 仓库放 md 文件,用 GitHub Action 在更新 md 时候自动船新部署到服务器。也可以用 rsync 加上参数-rltgoDzvO --delete 部署你生成的静态文件夹。
|
31
jqtmviyu 2023-03-02 01:42:33 +08:00
用 github 多好呀. 开个私有仓库放 md, 开个公有仓库放 page, 配置下 cli
然后就变成熟悉的 git 管理了, 只管提交, 编译和部署是自动的. 再说了, 自己的服务器和域名哪有 gihub 家的稳定. 想让国内访问也可以把 page 仓库在 vercel 也整一份, 然后添加自己的域名, |
32
realpg 2023-03-02 02:04:03 +08:00
不托管 github 是不是脑子有坑非得用静态博客
这玩意就是为了适应那种没有执行能力的版本库托管用的 |
33
baobao1270 2023-03-02 03:05:41 +08:00
自己搜一下 hexo-ssh-deployer 吧
|
34
dayeye2006199 2023-03-02 03:27:20 +08:00
因为可以白嫖
|
35
ysc3839 2023-03-02 03:43:27 +08:00 via Android
因为 GitHub Pages 是门槛最低的免费静态网站托管服务了,其他的相对来说都麻烦一些,而且大部分用户是用 GitHub 账号的,不需要额外注册。
|
37
JoeyWang321 2023-03-02 09:59:02 +08:00
|
38
acherkrau 2023-03-02 10:06:46 +08:00
我是用 rsync+github action 把静态文件推送到 vps 上了
|
39
yleoer 2023-03-02 11:31:01 +08:00
@plutotree #36 我用的这个: https://github.com/easingthemes/ssh-deploy ,配置一次后面就不用管了
|
40
edwinyzhang 298 天前
@wheat0r 你别说,我就是这么用的 :)
|