MinDoc
Docker安装:
docker run -p 8181:8181 --name mindoc -e DB_ADAPTER=mysql -e MYSQL_PORT_3306_TCP_ADDR=*.*.*.* -e MYSQL_PORT_3306_TCP_PORT=3306 -e MYSQL_INSTANCE_NAME=mindoc -e MYSQL_USERNAME=username -e MYSQL_PASSWORD='password' -e httpport=8181 --privileged=true -v /docker/mindoc:/myMindoc -d daocloud.io/lifei6671/docker-mindoc:latest
MYSQL_PORT_3306_TCP_ADDR:MySql连接地址
MYSQL_PORT_3306_TCP_PORT:MySql端口
MYSQL_INSTANCE_NAME:数据库名称
MYSQL_USERNAME:用户名
MYSQL_PASSWORD:密码
-v /docker/mindoc:/myMindoc # 映射目录
- 跑了上述代码后建议清理下 history 的命令记录
相关配置
容器启动后,进入容器
docker exec -it mindoc /bin/sh
进入根目录
cd /
删除mindoc空目录
rm -rf /mindoc
创建软连接
ln -s /myMindoc /mindoc
将创建软连接命令写入启动文件
echo "ln -s /myMindoc /mindoc" >> /etc/rc.local
退出容器
C ^ P, Q #按住Ctrl不放,按序按P和Q
重启容器
docker restart mindoc
Note:、
- 不知道什么原因,无法直接创建容器内的mindoc对外的直接映射,所以在这建立myMindoc中转目录,通过软连接方式和外部目录建立联系,容器外部可用git管理代码。
- 如果域名配置CDN只是为了隐藏IP,需要将刷新时间设置为0,不然页面会有奇怪的缓存,至少我测试的时候是这样。。。如果不介意某些可能的意外的话,域名解析直接A记录过去吧。。。
- 这容器还有个小bug,时区显示不太正常,然后导致每篇文章下的更新时间显示不对,从另外的Ubuntu系统里拷贝个/usr/share/zoneinfo/PRC文件到/etc/localtime中即可解决,不知还有没有更简单的方法?
配置简单负载均衡
- 先创建几个容器,如 mindoc、mindoc2、mindoc3,各映射端口 8181、8182、8183
配置Nginx
upstream myDoc { ip_hash; server 127.0.0.1:8181 max_fails=3 fail_timeout=30s weight=100; server 127.0.0.1:8182 max_fails=3 fail_timeout=30s weight=100; server 127.0.0.1:8183 max_fails=3 fail_timeout=30s weight=100; } # ip_hash指令,将同一用户引入同一服务器。 # max_fails = 3 为允许失败的次数,默认值为1 # fail_timeout = 30s(也可以是fail_timeout = 30,即后面的秒单位不带) 当max_fails次失败后,暂停将请求分发到该后端服务器的时间 # weight权限设置低,命中率就会低,这样机器压力就会减轻
server { # 此处省略相关配置 location / { proxy_pass http://myDoc; #这里proxy_test是上面的负载的名称,映射到代理服务器,可以是ip加端口,或url proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
- 重启nginx
参考资料
- MinDoc官网
- 【Nginx】实现负载均衡的几种方式
- nginx 反向代理和负载均衡
- linux ln 命令使用参数详解(ln -s 软链接)
- nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录
- Docker容器时区设置
文档更新时间: 2019-04-09 17:21 作者:Seeker