0

我正在尝试在 swarm 集群前创建一个代理。

该代理位于另一个 swarm 集群内部,以提供 HA。

这是当前的结构:

  1. 代理集群(ip范围192.168.98.100~192.168.98.102)
    • 代理管理器1;
    • 代理工作者1;
    • 代理工作者2;
  2. 应用集群(ip范围192.168.99.100~192.168.99.107)
    • 应用管理器1;
    • 应用管理器2;
    • 应用管理器3;
    • 应用程序工人1;
    • 应用工作者2;
    • 应用程序工作者3;
    • 应用程序工作者4;
    • 应用程序工人5;

当我使用 app-manager 的 IP 地址配置 nginx 时,代理重定向效果很好。

但是当我使用 app-manager 的主机名或 DNS 配置 nginx 时,代理服务找不到要重定向的服务器。

这是工作配置文件:

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    upstream app {
        server 192.168.99.100:8080;
        server 192.168.99.101:8080;
        server 192.168.99.102:8080;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://app;
        }
    }
}

这是一个好习惯吗?或者也许我做错了?

4

1 回答 1

0

您必须确保 nginx 可以将主机名解析为 IP 地址。查看更多信息:https ://www.nginx.com/blog/dns-service-discovery-nginx-plus/

检查 nginx 如何解析主机名或检查 nginx 服务器上的主机文件。

附带说明一下,我有时会为本地 dns https://cr.yp.to/djbdns.html运行它,然后确保所有 nginx 服务器都使用在服务器上运行的 dns 服务。配置 djbdns 比保持所有主机文件更新更容易。

于 2017-03-21T00:26:46.453 回答