我正在将我的wordpress农场(10个安装)移动到docker架构, 我想要一个nginx容器并运行10个php-fpm容器(mysql在外部服务器上) php容器名为php_domainname,还包含持久存储 我想知道这是怎么做到的: a)如何将域名和容器名传递给vhost conf文件
b)当我启动一个php-fpm容器时 1)将vhost.conf文件添加到nginx confs文件夹中 2)向nginx实例添加卷(持久存储) 3)重启nginx实例
我创建的所有nginx-php docker都有每个实例的进程,但我认为有10 + 1 nginx正在重载机器,并打破了docker的优势 感谢
答案 0 :(得分:0)
无需重新发明轮子,docker-proxy available on docker hub已经解决了这个问题。
答案 1 :(得分:0)
您还可以使用consul或类似服务自动发现。这意味着:
对于你的nginx vhost conf,让我们说位于/etc/nginx/conf.d/mywpfarm.conf
你使用consul-template https://github.com/hashicorp/consul-template来生成一个go-template中的配置你使用
upstream fpm {
{{range service "fpm"}}
server {{.Name}} {{.Address}}:{{.Port}};
{{end}}
}
在您将基于.php的请求转发到上游FPM的位置,您现在使用上面的上游。这样,nginx将通过所有可用的服务器进行负载平衡。如果您关闭一个FPM主机,配置会自动更改,FPM上游会被调整(这就是consul-template的用途,它会监视更改) - 因此您可以随时添加新的FPM服务并且水平扩展非常容易