如何使用nginx重新创建Cloudflare的永远在线功能?

时间:2013-11-22 02:37:52

标签: caching nginx memcached

Cloudflare使用nginx。

他们拥有名为Always Online的功能:http://www.cloudflare.com/always-online

正如他们的网站所述: Always Online是一种缓存页面静态版本的功能,以防服务器脱机。

我想在地球另一端设置缓存nginx服务器并让它缓存我网站的静态文件并将我的辅助dns指向它。如果我的网站服务器出现故障,将显示缓存版本。

这可以使用nginx反向代理功能吗?

或者,我也可以在nginx服务器中保存所有静态文件的副本,包括.html文件,并在主服务器离线时加载这些文件。

nginx可以这样做吗?

1 个答案:

答案 0 :(得分:0)

在Nginx中,可以设置缓存。该文档甚至提供了an example of a Nginx reverse proxy with caching

http {
    proxy_cache_path  /data/nginx/cache  levels=1:2    keys_zone=STATIC:10m
    inactive=24h  max_size=1g;
    server {
        location / {
            proxy_pass             http://1.2.3.4;
            proxy_set_header       Host $host;
            proxy_cache            STATIC;
            proxy_cache_valid      200  1d;
            proxy_cache_use_stale  error timeout invalid_header updating
                                   http_500 http_502 http_503 http_504;
        }
    }
}

请注意示例中的proxy_cache_use_stale参数,如果出现一系列错误(包括超时,500,502,503,504),则会提供旧的缓存项。