散人

背锅工程师

保持自我!保持清醒!保持学习!保持热爱!
  menu
10 文章
0 浏览
2 当前访客
ღゝ◡╹)ノ❤️

solo个人博客搭建

第一篇博客就写solo的搭建吧!

结识solo还是很多原因的,刚刚好这些也是我们需要准备的:

  1. 一台闲置的阿里云服务器(ECS)+ docker
  2. 一个MySQL数据库,可以自己在服务器上装,或者使用阿里云RDS
  3. 一个域名加上解析,国内要备案哦!阿里备案个人的还是蛮快的,我的域名一个星期就备案好了

我主要也是参考了开源中国和github的文档,当时想用docker-compose去起的,但是mysql还是建议用宿主机的或者是RDS的,容器的mysql一定要做好数据备份。

所以我是用宿主机mysql+solo docker搭建的:

mysql:

#登录数据库
mysql -uroot -ppassword 
#创建solo数据库
create database solo default character set utf8mb4 collate utf8mb4_general_ci;
#创建root本地登录并设置密码
create user 'root'@'127.0.0.1' identified by '123456';
#授权所有数据库及表给root本地登录权限
grant all privileges on *.* to 'root'@'127.0.0.1';
#刷新权限
flush privileges;

数据库配置好了就可以起solo容器了

docker run --detach --name solo --network=host \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="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=http --server_host=www.hewieliao.com --server_port=

这里只要注意数据库配置就好了;起来之后看容器是否正常运行,然后再配置nginx代理:

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

server {
    listen       80;
    server_name  域名; # 博客域名

    access_log off;

    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;
    }
}

然后通过域名访问,搭建完成!有兴趣的也可以试一试。

补充一:docker环境

参考:https://docs.docker.com/engine/install/centos/
$ sudo yum install -y yum-utils

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

$ sudo yum install docker-ce docker-ce-cli containerd.io

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://qaseeugs.mirror.aliyuncs.com"]
}
EOF

$ sudo systemctl start docker

补充二:配置https

docker启动命令--server_scheme=http 修改为--server_scheme=https
docker run --detach --name solo --network=host \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="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=www.hewieliao.com --server_port=

nginx配置:

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

server {
    #listen       80;
    listen 443 ssl http2;
    server_name  域名; # 博客域名
  
    ssl_certificate xxx.pem;
    ssl_certificate_key xxx.key;

    access_log off;

    location / {
        proxy_pass http://backend$request_uri;
        proxy_set_header  X-Real-IP $remote_addr;
        client_max_body_size  10m;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header Upgrade-Insecure-Requests 1;
        proxy_set_header X-Forwarded-Proto https;
    }
}

server {
    listen 80;
    server_name 域名;
    return 301 https://$server_name$request_uri;
}

标题:solo个人博客搭建
作者:hewieliao
地址:https://hewieliao.com/articles/2020/07/22/1595348043043.html