快速博客搭建指南

Updated on with 0 views and 0 comments

教你直接通过 nginx 反代和 https 协议快速搭建自己的博客平台

所需组件

docker、MySQL、nginx

博客框架

solo:一款开源免费的 Java 实现的博客平台框架,采用半社区化的设计,保持个人空间的同时增加内容的流通性,可以和 GitHub 以及自家社区产生联动,和 GitHub 仓库互相备份以及通过 GitHub 账号登陆评论

lute:他家的前端 Markdown 通用接口,可以让你更好的在博客后台直接编辑自己的文章

前置步骤

申请服务器:推荐腾讯云 1 核 1G1M 即可,一个月 66

申请域名:也可以使用腾讯云申请,尽量选择常见的域名后缀,这类域名一般首年不便宜,但是后面续费差的也不大。如果选乱七八糟的域名,首年虽然便宜但是续费贵到离谱

域名备案:腾讯云小程序即可,介绍的时候不要提这是博客就行了,我写的是个人学习记录

证书申请:免费的,针对域名申请后拿到两个证书就 OK 了

Docker

先拉取镜像 docker pull b3log/solodocker pull b3log/lute-http

博客的启动脚本可以写成脚本,方便配置好参数后手动重启和实现自动更新

1docker run --detach --rm --name lute --network=host b3log/lute-http
2docker run --detach --name solo --network=host \
3    --env RUNTIME_DB="MYSQL" \
4    --env JDBC_USERNAME="数据库用户名" \
5    --env JDBC_PASSWORD="数据库密码" \
6    --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
7    --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" \
8    b3log/solo --listen_port=8080 --server_scheme=https --server_host=你的域名 --lute_http=http://localhost:8249 --server_port=(默认80和443就为空)

nginx

安装部分就省略了,直接把配置文件挂出来参考,这里设置了 80 跳转 443,全部使用 https 协议,两个证书文件放在配置文件的 conf 目录下就行了

 1#user  nobody;
 2worker_processes  1;
 3
 4#error_log  logs/error.log;
 5#error_log  logs/error.log  notice;
 6#error_log  logs/error.log  info;
 7
 8#pid        logs/nginx.pid;
 9
10
11events {
12    worker_connections  1024;
13}
14
15http {
16    include       mime.types;
17    default_type  application/octet-stream;
18    sendfile        on;
19    keepalive_timeout  65;
20
21    upstream backend {
22        server localhost:8080; # Solo 监听端口
23    }
24
25    server {
26      listen 80;
27      access_log off;
28      #填写绑定证书的域名
29      server_name 你的域名;
30      #把http的域名请求转成https
31      return 301 https://$host$request_uri; 
32    }
33    
34    server {
35       #SSL 访问端口号为 443
36       listen 443 ssl; 
37       #填写绑定证书的域名
38       server_name 你的域名; 
39       #证书文件名称
40       ssl_certificate 你的证书文件.crt; 
41       #私钥文件名称
42       ssl_certificate_key 你的证书文件.key; 
43       ssl_session_timeout 5m;
44       #请按照以下协议配置
45       ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
46       #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
47       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; 
48       ssl_prefer_server_ciphers on;
49       location / {
50         #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
51         proxy_pass http://backend$request_uri;
52         proxy_set_header  Host $http_host;
53         proxy_set_header  X-Real-IP $remote_addr;
54         client_max_body_size  10m;
55       }
56    }
57}

设置自动更新

官方文档已经很清楚了,这里不再复述。因为加了 lute 框架,记得在脚本里 solo 启动前启动 lute 就可以了

参考链接

设置静态资源获取(待更新)

虽然 Markdown 非常适合写博客,但是对于图片这种静态资源不友好,需要通过外链获取去显示,所以需要 nginx 去配置静态资源的储存路径和获取。但是它家的社区好像也支持图片的自动保存,不通过 nginx 配置静态资源也可以放图片


标题:快速博客搭建指南
作者:Dadong-Zhang
地址:https://keithzhang.cn/articles/2020/12/08/1607437719776.html