扬城的雨
似乎是每年都有的,准时的,扬州的暴雨。
集中在 7 月,也就是暑假,我依然记得当时疫情时大家发明的词语 “涝疫结合”。只是现在没有 “疫” 而已,但是 “涝” 依然还在。
从 7.1 我就开始关注天气预报了,似乎是每天都有雨,今年的雨季比以往更多,雨量更大
公众号也一直推送着降雨的信息。扬城也彻底变成了“洋城”(海洋的洋)。
不过我家由于地势原因,实际上没受到太大影响,像是一些低地势的地方自然是首当其冲。根据他们发的图片,基本上骑个电动车水都漫到膝盖了😅虽然每年都很严重,但是今年格外严重。(去年是热死人,今年是淹死人😢)
蚊子般的项目综合实践
从 7.1 到 7.21,这期间一直被志强折磨着😇,而且还不快点结束居然拖了 20 天,也不知道图什么,难受
本来系统其实已经做好了,但是如果单独验收我怕问很多问题,就想拖着集体验,没想到这一拖居然就拖了十几天,期间还不停的发一些要求,属于是看着就烦(每次选他的课都是这种结局,很喜欢他的自我沉浸式讲课,完全是讲给自己听)
实验报告的撰写也是个另人头疼的事,不过还好我有 ChatGPT😎,等着答辩时直接把问题丢给 ChatGPT 了。
最近干的一些蠢事
回收站里存了好多 node_modules
文件夹,删除的时候要删 15 万个文件,删了快十分钟
做完题目睡觉前没关录音(我一般把录音功能当作计时器来用),发现时已经录了十个小时,内存爆炸
吃火鸡面,结果肚子疼😇但是火鸡面真的很好吃
域名备案
下午做题的时候就突然收到一条短信,定睛一看,域名的备案居然通过了!有一点小小的惊喜。
我是从7.9提交的备案申请,到今天差不多十个工作日(注意是工作日,周末那些不算的,实际上还是等了很久的😇)
说一下我为什么要备案吧。
国内的域名基本上不备案很难有说作为。大厂CDN用不了,只能通过Vercel部署(然而Vercel我感觉不太稳定)。前不久做(抄)的微信小程序也要备案,基本上就是没有备案就寸步难行。考虑到可持续发展,这个博客我是会一直做下去的,所以我觉得有必要给他弄一个“身份证”☺️
域名选购
起始我原本的域名选的是不太好的,因为当时没什么经验,纯粹就是和同学看便宜买了玩的。
我当时选的是.love域名,看起来很高级是吧😎那价格怎么样呢?只要一块钱!一年!对于新手来说谁不心动啊,不就相当于免费吗?管他有没有用,先买了再说!
后面有了域名就想着做一个网站吧,然后就有了今天的博客(属于是为了一碟醋包一盘饺子了)。后来日积月累的写了些博文,不断的装修博客,越来越喜欢上这种感觉(不得不说 Stack主题颜值真的很不错的,越看越耐看,简约又美观)。幸好当时选的是Hugo的框架,没有像Hexo那样需要配置node环境,编译速度也是世界第一,给新人的我带来了不少便利。
然后腾讯云的套路真的很深:先是以低价引你上钩,等你到了第二年域名续费时,你面对的只能是高价的续费额(.love域名续费居然要180一年😭而.cn和.top域名才2,30一个月),所以这个域名基本上属于是一年制的了。续费时流泪就是当初选域名时脑子里进的水。
所以奉劝各位新手,选购域名时不要看首年价格,一定要看续费价格!最好就是选.com域名一步到位,没钱就.cn
申请 SSL 证书
这也是建站必不可少的一步了。以前都是Vercel帮我一键generate,而现在需要自己手动申请了。
申请SSL证书可谓历尽千辛万苦,一开始尝试的几种方式都比较麻烦,网上的教程就没有一个统一点的,不是这有问题就是那有问题,
最后搞得基本上也心态爆炸了😇下面说一下踩的坑
Cerbot
已经不被推荐的方式,刚装完package就没继续下去了
Acme.sh
🔗地址
说实话acme.sh是一个不错的自动续签SSL证书的方案,据了解这种方式可能是目前 Let’s Encrypt 免费证书客户端最简单、最智能的 shell 脚本,可以自动发布和续订 Let’s Encrypt 中的免费证书。那为什么我在部署时遇到了各种错误呢?😢
首先是默认证书。我们免费SSL一般都选的 Let’s Encrypt颁发证书,我在执行时遇到了一下错误
Please add '--debug' or '--log' to check more details.
See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh
上网查了一下,发现是acme.sh调整了默认证书let’s encrypt为zerossl导致的,lnmp 1.8的话暂时选择其他zerossl或buypass,1.8的修复版已经上传或者添加ssl证书前执行:
acme.sh --set-default-ca --server letsencrypt
这样设置let’s encrypt为默认ssl证书就可以了 参考链接:https://blog.csdn.net/qq_24504453/article/details/122878963
但是这远远没有结束,我是参考的这篇文章,基本上处处有错…也不知道是他的问题还是我的问题。无奈,只好另寻他法
OHTTPS
ohttps.com提供了类似于acme.sh的功能,不过提供了友好的管理界面,可申请Let’s Encrypt免费通配符类型证书,还提供了证书吊销、到期前提醒、自动更新、自动部署功能。另外比acme.sh增加了一些非常实用的功能,主要包括可自动部署至阿里云、腾讯云、七牛云的负载均衡、内容分发CDN、SSL证书列表等,并可自动部署至多个nginx容器中。如果你有在证书更新后自动部署至多个不同节点的需求,使用ohttps.com就对了,在这里强烈推荐大家使用ohttps.com申请和管理Let’s Encrypt颁发的免费HTTPS证书。
上面那段话是我抄来的,但是问题不大,新手、纯小白、啥也不懂,选OHTTPS就对了,有图形话界面操作起来还是方便!
下面讲一下教程和注意点:
先注册一个帐号,这个应该不用多说了(可以使用GitHub帐号登录的,但是不知道抽什么风一直显示服务器错误)
注册好之后登录,选择证书管理,创建证书
选择泛域名,比较通用,域名的格式参考我写的
接下来选择验证域名,这里就是一个很坑的地方
注意,主机记录要把域名去掉!,实际上填的是_acme-challenge
,要不然会没法验证成功的(真不知道官方文档为什么要这样误导人)
到此,证书就已经申请完成了,下面部署一下节点
我使用的是腾讯云的SSL,如果你用的是腾讯云的轻量云服务器就按这个方法
这里的SecretId
和SecretKey
就按照官方的教程就行了,还是非常详细的。
然后关联一下证书就行了
接下来我们在腾讯云的SSL证书管理就能看到他刚刚提交的证书了
再然后就是把它下载下来,传到服务器上
如果你有XShell之类的工具传文件就很方便,没有的话就用Gitee当中转站,拉一个仓库然放进去,服务器再git clone仓库
我们最后实际要用的只有两个文件,分别是.crt和.key结尾的两个,中间那个不重要
传好之后我们要把证书放到 /etc/nginx文件夹下,执行一下命令,注意一下你的证书原本位置,别光顾着抄代码
sudo cp ~/lovir.cn_bundle.crt /etc/nginx
sudo cp ~/lovir.cn.key /etc/nginx
nginx文件夹目录如下
最后一步就是写nginx配置文件了,我已经帮你们写好了,直接复制代码然后用替换功能把lovir.cn换成你的域名就行(nginx配置文件不会写参考一下我的教程)
server {
listen 443 ssl; # 端口
server_name lovir.cn; # 域名
ssl_certificate lovir.cn_bundle.crt;
ssl_certificate_key lovir.cn.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /home/lovir/Blog; # 项目存放路径(注意权限)
index index.html index.htm; # 默认首页
}
}
http跳转https(可选配置,一般不用管)
server {
listen 80;
#请填写绑定证书的域名
server_name lovir.cn;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
反向代理(把某一端口网页的代理到443端口并颁发SSL证书),我看别人的都是一大段,不知道我写的有没有问题(根据实测是可用的,性能咋样就不知道了✌️)
server {
listen 443 ssl; # 端口
server_name music.lovir.cn; # 域名
ssl_certificate lovir.cn_bundle.crt;
ssl_certificate_key lovir.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location ~ / {
proxy_pass http://127.0.0.1:8080; # 源端口
proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
至此就完成了SSL证书的颁发~基本上全是图形化界面,对小白来说就非常友好!
后期续签的OHTTPS会自动上传文件到我们的腾讯云帐号,再下载一下文件传到服务器上就行了。
至此,周记完结。
感谢屏幕前的你,愿意花上几分钟的时间来听我讲一些琐碎无聊的事.