问题解决了,总结一下:
首先是环境:因为我所有的软件都在 docker 上面跑, nginx, mysql , halo 全都是。
所以就产生了两个问题,实际上是同一个问题:IP 问题
刚开始 halo 之前启动失败,因为 mysql 的 URL 错了。
原因是,我的 mysql 没有安装到宿主机,而是在 docker 容器中,所以 127.0.0.1 并不是 halo 访问 mysql 的 IP,需要用mysql 容器的 IP,容器 IP 可以用 docker inspect 你的mysql容器ID或者name
查看,其中 IPAddress 就是容器 IP。
解决完 mysql 的问题,发现 nginx 反代也出了问题。
思考一下,发现我反代的 IP 也是 127.0.01 ,这意味着是去我 nginx 的容器里面去请求 8090 端口,这肯定是不行的,因为我的 halo 压根没装在 nginx 容器里,而是一个单独的容器。
知道问题就好解决了,两个办法:
1.把 IP 改成你服务器实际 IP
2.也可以把 IP 改成宿主机 IP,也就是ifconfig出来的
至此,问题完美解决。
另外问一句:
用 docker 启动多个容器的时候创建多个博客的时候,数据库需要创建多个吗?还是多个账户共用一个表?或者可以一个库多张表吗?