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

過去 1 か月にわたってこの問題を何度も何度も確認した結果、この問題は nginx とはまったく関係がないことがわかりました。

API 呼び出しが CloudFlare に送信されると、rec_newレコードが更新されるまでに約 5 分 (300 秒 TTL) かかります。CloudFlare への他の DNS 関連の API 呼び出しについても同じことが言えます。

これは、5 分間のギャップを説明しています。

Cloudflare から:

やあ、

DNS の更新は、約 5 分後に行われます (ttl は 300 秒)。Web 上のあらゆる場所に伝播するには、もう少し時間がかかる場合があります (たとえば、ISP による再帰 DNS キャッシング)。

于 2013-11-04T22:09:05.363 に答える