2011-07-22 10 views
2

私は場所/静的/リモートロケーションhttp://central/static/へのすべての要求をプロキシしているいくつかのnginxの "クライアント"を持っており、すべてのファイルのコピーもローカルに持っています。ファイルがダウンしているときにローカルファイルにフォールバックしてリモートホスト経由でファイルを最初に提供するにはどうすればよいですか?

私が欲しいのは、リモートが利用できないときにこのローカルコピーに切り替えることです。

私の考えである唯一の選択肢は、ローカルサーバーが最後の1つ(最小の重量)で、リモートが最大の重量であるようなアップストリームのセットを構成することです。

しかし、おそらく、少し複雑ではない方法がありますか?キャッシュを使用することは、実際にはオプションではありません。すべてのファイルがキャッシュに格納されていることを確認できず、クライアント(ブラウザ)はキャッシュを無効にしたり、いつでも新しいコピーを要求したりする可能性があります。

答えて

1

あなたは試みることができる:

location /static { 
    proxy_pass http://central/static; 
    proxy_next_upstream off; 
    root /local/static/files; 
} 

リモートサーバーがオフラインにする必要があります。それが何らかの応答、すなわち404を与えているなら、これは動作しません。

+0

残念ながら、これは動作しません - "502 Bad gateway"が生成されます。だから、私はローカルサーバーを定義し、UNIXソケットでリッスンし、上流に "バックアップ"としてマークしました。 – aldem

関連する問題