快速博客搭建指南

本贴最后更新于 1235 天前,其中的信息可能已经水流花落

教你直接通过 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

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

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

nginx

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

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream backend {
        server localhost:8080; # Solo 监听端口
    }

    server {
      listen 80;
      access_log off;
      #填写绑定证书的域名
      server_name 你的域名;
      #把http的域名请求转成https
      return 301 https://$host$request_uri; 
    }
    
    server {
       #SSL 访问端口号为 443
       listen 443 ssl; 
       #填写绑定证书的域名
       server_name 你的域名; 
       #证书文件名称
       ssl_certificate 你的证书文件.crt; 
       #私钥文件名称
       ssl_certificate_key 你的证书文件.key; 
       ssl_session_timeout 5m;
       #请按照以下协议配置
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
       #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; 
       ssl_prefer_server_ciphers on;
       location / {
         #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
         proxy_pass http://backend$request_uri;
         proxy_set_header  Host $http_host;
         proxy_set_header  X-Real-IP $remote_addr;
         client_max_body_size  10m;
       }
    }
}

设置自动更新

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

参考链接

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

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

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...