原先是直接把静态网页放在Github Pages上,实现版本管理,一键部署网站,方便的很。奈何在国内访问实在不友好,访问自己的个人网站居然还要科学上网。正好有个云主机一直放着没用(其实最开始是通过wordpress将网站内容放在云主机上管理的,但是它的更新文章方式实在不能忍,就弃了)。既然有了hugo生成静态网页,借助Nginx将这些网页资源放在云主机上生成网站就很简单了。
准备工作:
- 云主机
- 域名
- hugo生成静态网页
上面这些准备就绪,开工!
安装nginx
|
|
将静态网页上传到云主机上
如果是hugo生成的,就是将public目录放上去。并将此路径下的权限改为nginx用户,即nginx配置文件中的user。
|
|
编辑nginx配置文件
找到nginx的配置文件,一般在/etc/nginx下面。主要是要修改server块。同时检查下user变量设置的是否是上一步的用户。
|
|
验证配置文件语法:
|
|
重启nginx服务器
|
|
域名配置
在购买域名的地方添加一条A记录,指向云主机公网IP。
Ending
幸运的话,就可以愉快的用域名访问网站了。如果无法访问,需要搜索下可能的问题(比如防火墙有没有拦截这个接口,nginx端口有监听吗等等),然后挨个检查下。如果之前有用github pages 绑定过这个域名,在取消绑定后,最好要清空下浏览器缓存,不然可能绑定关系还在,导致访问失败。
2024.02.18更新
买新的服务器
去年买的阿里云实例要过期了,续费一年要700+。听过国外的服务器便宜,准备整个
VPS(virtual private server) - 国外VPS便宜(最好找支持国内付款方式的)
VPS和云服务器不是一个东西
这次就试试大家推荐的RackNerd(https://my.racknerd.com),美国的服务器。步骤也极其丝滑,选择配置,注册个人账号(因为之前还没有这个网站的账号),支付宝付款,完事就把服务器登录信息发到邮箱里了。
一些网站:
- https://ping.pe 用于测试你的IP在各地区是否连的通
- https://vpsls.com/ 记录了一些便宜的海外vps网站
此外,由于换了个服务器,所以需要将原来的内容迁移到新服务器上。遇到了一些新问题,记录如下:
配置完域名后,发现ping带有www头的域名成功,但是没有www头的失败
原因是域名解析只配置了www的,还需要配置@的
浏览器访问网站失败,防火墙策略检查
将http和https的防火墙打开,发现可以进来访问了。因为访问的报错换成403权限问题了
访问权限403问题
表示您的 Nginx 服务器收到了请求,但拒绝了该请求的访问。这通常是因为服务器配置的权限限制或访问控制导致的。
目录的权限755和属主没问题,于是查看是否是SELinux设置的问题:
- sestatus 显示是 enabled , 那就先 setenforce 0 关闭试下
- 此时浏览器访问主页已经可以了,可以看出就是SELinux配置的问题
但是需要注意:完全禁用 SELinux(将其设置为 disabled)可能会降低系统的安全性。通常情况下,我们建议保持 SELinux 启用,并根据需要调整其安全策略,以提高系统的安全性。
但是。。调整安装策略略复杂,先略过吧,后面了解了再修改
访问url中带中文的会访问失败,纯英文没问题
这可能是因为 Web 服务器(比如 Nginx 或 Apache)默认情况下不支持中文字符的 URL。您可以尝试在 Nginx 配置中使用
charset指令来指定字符集,以确保中文字符的正确显示
设置了发现没用。才发现是之前因为对应文章名词是中文,压根就没有传到服务器中(会报错)。解决方法:修改ftp软件的encoding为utf8
2025.07.25 更新
ok,又绕回来了。好久没管这个网站了,最近想捡起来,然后发现之前那台vps不能用了,于是花了60+去阿里云买了个轻量服务器水水。
今晚去给域名备案下,等审核中。
这次还是打算用hugo渲染,然后放到服务器上。但忘光光了,所以需要重新捡…
hugo准备
- 安装hugo 采用
homebrew方式,验证安装是否成功hugo version - 安装git 之前安装过了,验证是否安装命令
git --version - 按照指引和ai,开始准备
|
|
- 服务器准备 过程就不赘述了,跟着以前的步骤和AI尝试
- 备案信息放到网站页面foot