容器扩展与数据持久化实践
1. 容器扩展的相关操作
在容器扩展过程中,采用特定方法能确保数据库实例数据变更实时同步。不过,每次 GET 请求都读取数据库会增加查询量,可能导致网络、缓存或磁盘传输饱和,成为性能瓶颈。而且,数据库 find() 操作的后端处理延迟会影响用户体验。
1.1 网络服务器配置
由于 NGINX 的 DNS 缓存机制,在 Swarm 中配置网络服务器时会遇到问题。以下是几种解决方案:
- 与 NGINX 并行运行 DNS 转发器(如 dnsmasq)并用作解析器,需将二者置于同一容器。
- 在容器启动时,使用 envsubst 工具将系统的 DNS 解析器信息填充到 NGINX 配置中,要求所有容器处于同一用户定义网络。
- 硬编码 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 ~/\.
超级会员免费看
订阅专栏 解锁全文
1405

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



