0

我的 nginx 安装在 /etc/nginx 下,我在 /etc/nginx/conf.d 中创建了 cache.conf 文件,内容如下:

proxy_temp_path /tmp/nginx_temp;
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache_zone1:500m inactive=10d max_size=1g;
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 10;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_404;

在 /etc/nginx/nginx.conf 中配置以下内容:

server {
        listen    80;
        server_name    xxx;
        root    /data/webs;

        server_tokens off;
        location ~ .*\.(gif|jpg|png|html|htm|css|js|ico|swf|pdf|wof|woff2|svg)$ {
            proxy_redirect off;
            proxy_set_header         Host $host;
            proxy_set_header         X-real-ip $remote_addr;
            proxy_set_header         X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass               http://localhost:8080;

            proxy_buffering          on; 
            proxy_cache              cache_zone1;   
            proxy_cache_key          "$host$request_uri";   
            add_header Cache         "$upstream_cache_status"; 
            proxy_cache_valid        200 304 301 302 100d;
            proxy_cache_valid        404 1m;
            proxy_cache_valid        any 5m;
        }

    }

    server{
        listen 8080;
        server_name xxx;
        charset utf-8;
        server_tokens off;
        root /data/webs;
        location / {
            root /data/webs;
            index index.html index.html;
        }
    }

虽然返回的状态显示缓存被读取了,但是每次访问还是需要一些时间来加载,但是加载刷新之后,内容马上渲染出来了还有一个问题是我的html文件更新后,我也删除了缓存配置文件/tmp/nginx_cache,但html内容仍然保持不变。

4

0 回答 0