docker+mysql+nginx=solo 安装部署喂饭教程

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 了,感谢大家的关注!

image.png

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1449 引用 • 10092 回帖 • 488 关注
  • 安装

    你若安好,便是晴天。

    134 引用 • 1184 回帖 • 2 关注

相关帖子

欢迎来到这里!

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

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