1.mysql 部署
如果有创建过失败的历史数据,可 mysql -u root -p 登陆数据库,删除历史数据库:
drop database solo;
手动建库(库名 solo ,字符集使用 utf8mb4 ,排序规则 utf8mb4_general_ci ):
create database solo default character set utf8mb4 collate utf8mb4_general_ci;
create user 'solo'@'192.168.1.100' identified by 'mimamimamima';
grant all privileges on solo.* TO 'solo'@'192.168.1.100';
flush privileges;
2.docker 部署
2.1 部署 solo
获取最新镜像:
docker pull b3log/solo
docker pull nginx
创建网络:
docker network create -d bridge blog
启动 solo 容器:
docker run -d --restart=always --name solo\
--network blog\
--env RUNTIME_DB="MYSQL"\
--env JDBC_USERNAME="solo" \
--env JDBC_PASSWORD="mimamimamima"\
--env JDBC_DRIVER="com.mysql.jdbc.Driver"\
--env JDBC_URL="jdbc:mysql://192.168.1.100:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"\
b3log/solo --listen_port=8080 --server_scheme=https --server_host=www.20180610.xyz server_port=8109
2.2 部署 nginx
先看下我的宿主机 nginx 目录的文件结构:
./
├── conf
│ ├── 20180610.xyz.crt
│ ├── 20180610.xyz.key
│ ├── conf.d
│ │ └── default.conf
│ ├── mime.types
│ └── nginx.conf
├── conf.d
│ └── default.conf
├── default.conf
├── logs
│ └── access.log
├── www
└── wwwlogs
*SSL 证书是薅的阿里云的免费 HTTPS 证书免费续杯版
下面是 nginx.conf 文件的内容,供大家参考:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_body"';
access_log /var/log/nginx/logs/access.log main;
sendfile on;
gzip on;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_min_length 256k;
gzip_types text/plain application/javascript text/css application/json application/x-javascript text/xml application/xml text/javascript;
upstream backend {
server solo:8080 max_fails=3 fail_timeout=30s;
}
server {
listen 8109 ssl;
server_name 20180610.xyz www.20180610.xyz;
ssl_certificate 20180610.xyz.crt;
ssl_certificate_key 20180610.xyz.key;
ssl_session_timeout 5m;
access_log /var/log/nginx/logs/access.log main;
location / {
proxy_pass http://backend$request_uri;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header http_x_forwarded_for $remote_addr;
client_max_body_size 10m;
}
}
server {
listen 80;
server_name 20180610.xyz www.20180610.xyz;
rewrite ^(.*)$ https://$host$1 permanent;
}
}
启动 solo 容器:
docker run -d -p 8000:80 -p 8109:8109 -m 200m --restart always \
--name blog_nginx --network blog \
-v /data/blog/nginx/www:/www \
-v /data/blog/nginx/conf/:/etc/nginx/ \
-v /data/blog/nginx/logs:/var/log/nginx/logs \
-v /data/blog/nginx/wwwlogs:/wwwlogs \
-v /data/blog/nginx/default.conf:/etc/nginx/conf.d/default.conf \
nginx
安装完毕
接下来就可以愉快的耍 solo 了,感谢大家的关注!

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