都2120年了,还有人想搭建自己的博客,不会吧不会吧🤡🤡🤡
鸣谢
✍️ Gridea 一个静态博客写作客户端。你可以用它来记录你的生活、心情、知识、笔记、创意... ...
Github
Gridea 主页
示例网站
1.获取一台vps服务器,并拥有root权限,并安装网页代理软件Nginx
vps可自行购买,这里不做任何推广,并根据厂商指引,获取您vps的root权限。
为能够实现网页服务,我们需要在vps上搭建网页代理软件,常用的软件有Nginx, Apache, Tomcat等等,这里本文将以Nginx为例实现博客的搭建。
👉安装Nginx
假设您vps服务器的系统是CentOS,并且防火墙已经开放了80+443端口,以及公网ip地址为233.233.233.233,那么在root权限下输入如下指令:
yum install nginx -y
等待安装完成即可;
开启Nginx服务并检查开启状态:
systemctl start nginx && systemctl status nginx
如若返回值里有"Active: active (running)"字样,那么则代表Nginx服务已经启动成功。如若您按照前文所说,防火墙开放了80+443端口,那么在浏览器键入http://233.233.233.233,应当可以访问到CentOS下的Nginx的欢迎界面。
设置Nginx开机自启:
systemctl enable nginx
2. 域名解析+配置Nginx以及其主要参数说明
域名解析
假设您已经拥有域名sbdj.com,则您需要将该域名解析到您的vps上,具体如何进入解析界面则需要根据您的域名购买托管商界面选择,不会就去百度🙄;
- "记录类型"需要选择"A记录"
- "主机记录"一栏,应当填写您需要解析的二级域名名称,这里我们希望最终vps的访问网页为www.sbdj.com,那么这里"主机记录"就要填写www
- "记录值"一栏填入您vps的公网ip地址,在本文中我们设置为233.233.233.233
- 其他的选项默认即可
随后,等待1-10分钟,然后在随便一个联网的机器中的终端里键入指令
ping www.sbdj.com
若是能够返回ip地址233.233.233.233,那么就代表您已经成功解析了域名。
配置Nginx
Nginx的默认配置文件路径: "/etc/nginx/nginx.conf",查看该文件,找到大括号server{......},这里面便包含了nginx网页路径的配置,
- 其中"root /usr/share/nginx/html"则是yum/apt-get 安装的Nginx的默认网页路径,该路径下的index.html将会显示在您http://233.233.233.233下
- "index index.html"选项则代表了网页默认索引,即访问http://233.233.233.233即可访问目录下的index.html,而假如您目录下有另外一个html文件,名称是test.html,若想访问该文件,则需要http://233.233.233.233/test.html,当然您可把index设置为"index test.html",那么在浏览器访问时候便可不需要带test.html后缀了。
- "listen 80"或者"listen 443 ssl"则代表了nginx服务所使用的端口,80对应http协议的默认端口,443对应https协议的默认端口。在这里我们先设置为80,后续配置ssl时候再讲如何设置443.
- server_name 这里是您域名的解析信息,如您的域名为www.sbdj.com,那么外部使用http://www.sbdj.com进行访问时候,则会载入server{......}的配置。
- ssl_certificate 为设置443端口的https协议时候ssl的证书路径
- ssl_certificate_key 为设置443端口的https协议时候ssl的公钥路径
所以,综上所述:
👉我们修改server_name为 www.sbdj.com,listen端口先设置为80,网页路径如若有需要可自行修改,本文中将采用nginx默认路径"/usr/share/nginx/html/"作为讲解依据。修改nginx.conf文件完成后,重启nginx服务:
systemctl restart nginx
👉在浏览器键入http://www.sbdj.com,可以正常访问,代表此步骤已经完美成功。
3.下载Gridea,并配置其远程vps的路径
- 在Github_Releases 中选择您的操作系统的Gridea下载。
- 打开Gridea,选择其左侧的"server"按钮,如下图:
其中有说明价值的是:- Port, 端口号,这里应当是您vps的ssh端口,默认为22,如您自己修改过,请在这里保持一致
- Username, 用户名,这里因为操作的远程路径是root所属,所以我们需要root权限
- Remote Path, 远程路径,正如上文所说,这里我们使用nginx默认路径"/usr/share/nginx/html"
😎至此,vps上Gridea+Nginx的http协议博客已经搭建完毕,您可以直接在Gridea客户端写markdown语法的文章,然后点击客户端左侧下方的"同步",即可实时同步到远程vps端便大家访问。
4.使用acme.sh脚本配置网站自动续签https ssl证书
👉注意:这里的操作均需要使用root,并且nginx等东西的配置已经像上文所述配置完成并成功运行Gridea+nginx
- 下载acme.sh并安装
curl https://get.acme.sh | sh
- 刷新环境变量
source /root/.bashrc
- 修改默认CA为 LetsEncrypt
acme.sh --set-default-ca --server letsencrypt
- 为示例域名www.sbdj.com申请ssl证书
acme.sh --issue -d www.sbdj.com --webroot /usr/share/nginx/html/
- 安装证书到指定位置
acme.sh --install-cert -d www.sbdj.com \ --key-file /usr/local/nginx/www.sbdj.com.key \ --fullchain-file /usr/local/nginx/www.sbdj.com.crt
- 配置/etc/nginx/nginx.conf文件
根据上一步中证书安装的路径,- 配置ssl_certificate 后的证书路径为 "/usr/local/nginx/www.sbdj.com.crt"
- 配置ssl_cerfificate_key后的证书公钥路径为"/usr/local/nginx/www.sbdj.com.key"
- 重启nginx
systemctl restart nginx
事实上,acme.sh所申请的证书时效只有三个月,所以时间到了还需要续签申领🙃,好在acme.sh已经为我们写好了定时申领程序😝
👉使用指令
crontab -l
37 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
从返回的结果中可以看到,acme.sh已经自动写入了定时更新申领ssl证书的的任务,该crontab意为每小时的第37分钟执行acme.sh脚本。
😎至此,acme.sh申请免费ssl证书的教程结束。
5. 本教程nginx.conf示例模板文件下载
😋😋😋配有贴心注释的Nginx模板dj_nginx.conf下载地址: 点我