Docker 服务部署与数据持久化实战
1. Web 服务器配置
由于 NGINX 配置处理的特性,Web 服务器的更改会有些棘手。NGINX 会对 DNS 条目进行强缓存,一旦读取配置文件,若未指定额外标志( resolver ),配置内的新 DNS 解析将不会实际发生。对于不断变化且可迁移的 Docker 服务而言,这是个严重问题,需要解决才能在 Swarm 上正常运行。以下是几种解决方案:
1. 与 NGINX 并行运行 DNS 转发器(如 dnsmasq)并将其用作解析器,这要求 dnsmasq 和 NGINX 在同一容器中运行。
2. 在 NGINX 配置容器启动时,使用 envsubst 从系统中填充相同的解析器,这要求所有容器位于同一用户定义的网络中。
3. 硬编码 DNS 解析器 IP(127.0.0.11),同样要求所有容器位于同一用户定义的网络中。
为保证健壮性,我们选择第二种方案。具体操作如下:
1. 将上一章的 Web 服务器复制到新文件夹并重命名为 nginx_main_site.conf.template 。
2. 添加解析器配置和代理主机端点的变量 $APP_NAME :
server {
listen 8080;
server_name _;
resolver $DNS_RESOLVERS;
root /srv/www/html;
location ~/\. {
den
超级会员免费看
订阅专栏 解锁全文
1086

被折叠的 条评论
为什么被折叠?



