LoveIt - 2部署
前言
完成前期的准备工作后,在部署阶段需要配置服务器或对象存储服务。
对象存储和服务器对比
对象存储平台
国内有阿里云OSS、腾讯COS、又拍云、七牛云等。国外有Github Pages、Netlify、Azure、Google等,其中Github Pages免费,但是有个说法:Github屏蔽百度爬虫,使用Github Pages的网站百度搜不到。
对象存储平台也可以做为Markdown图床,配合CDN,加快图片加载速度。
笔者的服务器是阿里家的,所以对象存储也用了阿里云OSS。
阿里云OSS部署参考
对象存储的配置非常简单,哈喽沃德先生的这篇文章已经很详细了,按照这篇文章可以完成上传操作。文章最后的“阅读全文”可以绕过,方法是在Chrome控制台的Network中找到readmore.js
,右键Block request URL
。
需要注意的是,上传的Bucket要设置为公共读权限,同时限制Refer,做好防盗链。
服务器
平时有使用VPS需求,可选择使用VPS。
对比
- 对象存储: 优点:便宜,不需要搭建环境。 缺点:流量费用,要考虑图床的防盗链。
- 服务器: 优点各种踩坑😔,可以提升技能。
- 费用: 对象存储平台不考虑流量费:7.2元/年。 阿里云服务器,学生党及年龄小于等于24岁:10元/月;不满足以上条件的个人:121元/月。
- 结论 对象存储上手简单,成本低。
服务器环境
不使用服务器部署的读者,可跳过这部分。
操作系统Ubuntu
更新安装源 apt update
修改hostname
|
|
安装软件
|
|
SSH安全配置
- 安全组限制IP通过SSH远程登陆。如果使用Github Action安全组无法限制,Github Action的服务器部署在Azure上,官方文档中包含几万行IP段,不适合做限制。
- 修改22端口。由于第一个原因,只能修改端口。否则Massscan3分钟全网段扫描,触发SSH口令暴力破解,几乎每天都有告警。注意!修改之后,确定其他端口可以登陆再关闭22端口。
- 配置SSH key避免执行git命令时用户密码验证。
Nginx配置
root权限启动。避免前端访问403的问题。/etc/nginx/nginx.conf
中启动配置的用户与实际启动nginx的用户需要保持一致,可修改为低权限用户启动。 如果Nginx版本存在漏洞,以root权限启动,存在被拿到root权限的风险。
配置 /etc/nginx/nginx.conf
|
|
配置 /etc/nginx/conf.d/default.conf
|
|
上传
将blog的public
目录压缩为zip格式,使用rz
命令上传到服务器上,unzip
命令解压到Nginx配置的网站根目录中。
正常情况下,域名解析到CDN,CDN设置源站IP。到这一部可以访问域名,查看部署结果。如果blog配置未完成,可以先上传一张图片做测试。