使用nginx代理缓存超时/延迟?

时间:2013-09-25 18:28:00

标签: nginx proxy

为您提供一些有关我的问题的背景信息:

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

  1. 将基本文件安装到根路径(即/var/www/{site}
  2. 创建新的nginx配置文件并将其放在/etc/nginx/sites-available/{site}
  3. /etc/nginx/sites-enabled/{site}
  4. 创建该文件的符号链接
  5. 重新加载nginx配置:service nginx reload
  6. 向CloudFlare发送API调用,将{site}.mydomain.com的所有请求定向到服务器的IP地址
  7. 之后,{site}.mydomain.com应该有效,除非......它没有!

    ...直到你等了~5分钟,然后神奇地开始工作。在代理与nginx生效之前是否存在延迟?

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

    我无法解释发生了什么!

    nginx config(其中{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";
        }
    }
    

1 个答案:

答案 0 :(得分:2)

在过去一个月内查看此问题之后,事实证明该问题根本与nginx无关。

向CloudFlare发送rec_new API调用时,更新记录大约需要五分钟(300秒TTL)。对于CloudFlare的任何其他DNS相关API调用也可以这样说。

这解释了五分钟的差距。

来自Cloudflare

  

您好,

     

DNS更新应在大约五分钟后发生(ttl为300秒)。可能需要更长的时间才能在网络上的任何地方传播(例如,您的ISP的递归DNS缓存)。