2

给你一些关于我的问题的背景:

我有一个安装软件并公开提供服务的应用程序。安装时:

  1. 将基础文件安装到根路径(即/var/www/{site}
  2. 创建一个新的 nginx 配置文件并将其放置在/etc/nginx/sites-available/{site}
  3. 创建指向该文件的符号链接/etc/nginx/sites-enabled/{site}
  4. 重新加载 nginx 配置:service nginx reload
  5. 向 CloudFlare 发送 API 调用以将所有请求定向{site}.mydomain.com到服务器的 IP 地址

在那之后,{site}.mydomain.com应该工作,除了......它没有!

...直到您等待约 5 分钟,然后它神奇地开始工作。代理在 nginx 生效之前是否有延迟?

如果我删除{site}并读取它(与上述相同的过程),即使它以前工作过,它也会停止工作一段时间,然后再开始工作。

我无法解释发生了什么!

nginx 配置(在{site}哪里foobar

upstream mydomain_foobar {
    server 127.0.0.1:4567;
}

server {
    listen 80;

    server_name foobar.mydomain.com;
    root /var/www/mydomain/foobar/;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://mydomain-foobar/;
        proxy_redirect off;

        # Socket.io Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
4

1 回答 1

2

在过去一个月里断断续续地查看这个问题后,发现这个问题根本与 nginx 无关。

rec_newAPI 调用发送到 CloudFlare 时,它​​们的记录更新大约需要五分钟(300 秒 TTL)。对 CloudFlare 的任何其他与 DNS 相关的 API 调用也是如此。

这解释了五分钟的间隔。

来自 Cloudflare

你好,

DNS 更新应在大约五分钟后进行(ttl 为 300 秒)。在网络上到处传播可能需要更长的时间(例如,您的 ISP 的递归 DNS 缓存)。

于 2013-11-04T22:09:05.363 回答