Nginx的proxy_store作用是直接把静态文件在本地硬盘创建并读取,类似于七牛或者又拍这样的镜像CDN功能,首次访问会自动获取源站的静态图片等文件,之后的访问就是直接从CDN服务器读取,加快了速度。
    需要配置一下参数:

    1. #启用缓存到本地的功能
    2. proxy_store on;
    3. #表示用户读写权限,如果在error中报路径不允许访问的话就用"chomod -R a+rw"将下面配置的路径改 为相应的权限.
    4. proxy_store_access user:rw group:rw all:rw;
    5. #此处为文件的缓存路径,这个路径是和url中的文件路径一致的
    6. proxy_temp_path 缓存目录;
    7. #在上面的配置之后,虽然文件被缓存到了本地磁盘上,但每次请求仍会向远端拉取文件,为了避免去远端 拉取文件,还必须增加:
    8. if ( !-e $request_filename) {
    9. proxy_pass http://192.168.10.10;
    10. }
    11. 注:"!-e $request_filename"正则表达式,匹配缓存目录中的文件与源文件是否存在。
    12. "http://192.168.10.10" 源服务器的地址,默认端口80,如监听其他端口,此处要指出,例如4000端口,
    13. http://192.168.10.10:4000

    整体配置如下(修改nginx的配置文件nginx.conf):

    1. location / {
    2. //这里的location是要换成自己经过精确匹配的location,
    3. //比如要缓存图片要写成 "location ~*\.(gif|jpg|jepg|png|bmp)${"
    4. expires 3d; //所有链接,浏览器缓存过期时间为3天
    5. proxy_set_header Accept-Encoding '';
    6. root /home/mpeg/nginx; //此目录为服务器的根目录,下面的if语句就是判断此目录下是否有响应的文件
    7. proxy_store on; //表示开启缓存
    8. proxy_store_access user:rw group:rw all:rw;//表示用户读写权限
    9. proxy_temp_path /home/mpeg/nginx; //此处为文件的缓存路径,这个路径是和url中的文件路径一致的
    10. if ( !-e $request_filename) {
    11. proxy_pass http://192.168.0.1; //此处为要被代理的服务器的地址
    12. }
    13. }