第一篇博客就写solo的搭建吧!
结识solo还是很多原因的,刚刚好这些也是我们需要准备的:
- 一台闲置的阿里云服务器(ECS)+ docker
- 一个MySQL数据库,可以自己在服务器上装,或者使用阿里云RDS
- 一个域名加上解析,国内要备案哦!阿里备案个人的还是蛮快的,我的域名一个星期就备案好了
我主要也是参考了开源中国和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;
}