`
冷静
  • 浏览: 147717 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

squid更新缓存

阅读更多

1.在squid.conf文件里添加

 

acl Purge method PURGE    
acl Localhost src 192.168.1.1/10 //你的前端服务器IP地址,如Nginx服务器IP    

http_access allow Purge Localhost    
http_access deny Purge

 

2.squid.properties

 

servers=192.168.1.1:3128

 

3.PurgeManager.java

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Properties;

public class PurgeManager {
    String[] servers = {};

    private static PurgeManager pm = null;

    public synchronized static PurgeManager getInstance() {
        if (pm == null) {
            pm = new PurgeManager();
        }
        return pm;
    }

   
    private PurgeManager() {
        InputStream inputStream = this.getClass().getResourceAsStream("squid.properties");
        Properties p = new Properties();
        try {
            p.load(inputStream);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        String ipstr = p.getProperty("servers");
        System.out.println("ipstr=========" + ipstr);

        if (ipstr != null) {
            servers = ipstr.split(";");
        }
        try {
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

   
    public String purgeSquid(String url) {
        String msg = "";
        System.out.println("PURGE " + url);
        for (int i = 0; i < servers.length; i++) {
            String t[] = servers[i].split(":");
            if (t.length == 1)
                doOneSquid(t[0], url);
            else
                doOneSquid(t[0], url, Integer.parseInt(t[1]));
        }
        return msg;
    }

   
    private String doOneSquid(String serverip, String purl) {
        return doOneSquid(serverip, purl, 80);
    }

   
    private String doOneSquid(String serverip, String purl, int port) {
        String message = "";
        // 获取hostname
        String hname = parseHostNameFromUrl(purl);
        try {
            Socket s = new Socket(serverip, port);
            InputStream is = s.getInputStream();
            OutputStream os = s.getOutputStream();

            BufferedReader in = new BufferedReader(new InputStreamReader(is));
            PrintWriter out = new PrintWriter(new OutputStreamWriter(os), true);
            String state = "PURGE " + purl + " HTTP/1.1";

            out.println(state);
            out.println("HOST:" + hname);
            out.println();

            String downstr;
            while ((downstr = in.readLine()) != null) {
                System.out.println(downstr);
                message += downstr + "<br>";
            }
            s.close();

        } catch (Exception e) {
            e.printStackTrace();
            message += "<br>操作失败!";
        }
        return message;
    }

   
    private String parseHostNameFromUrl(String purl) {
        if (purl == null)
            return "";
        int idx1 = 0;
        int idx2 = 0;
        if (purl.toLowerCase().startsWith("http://")) {
            idx1 = 7;
        }
        idx2 = purl.indexOf("/", idx1);
        if (idx2 == -1)
            idx2 = purl.length();
        return purl.substring(idx1, idx2);
    }

    public static void main(String[] args) {      
    	//System.out.println(PurgeManager.getInstance().
    	//parseHostNameFromUrl("db.com"));
        PurgeManager.getInstance().purgeSquid(http://192.168.1.1:3128/index.html);
    }
}

 

分享到:
评论

相关推荐

    squid缓存服务器的研究

    ### Squid 缓存服务器研究 #### 一、Squid 概述 Squid 是一款广泛应用于互联网数据缓存的开源软件。其主要功能是接收来自客户端的请求,并根据请求内容,从远程服务器获取数据后缓存至本地。当下次再次请求相同的...

    squid 配置缓存服务器

    ** squid 配置缓存服务器** Squid 是一个广泛使用的开源 HTTP 代理服务器和缓存系统,它能够显著提高网络访问速度,减轻服务器负载,同时提供内容过滤、访问控制等功能。在本文中,我们将深入探讨如何配置 Squid ...

    Squid web缓存技术

    【Squid web缓存技术】是网络优化和性能提升的一种关键工具,主要负责存储、重用和分发网络上的内容,以减少网络带宽的消耗和提高...同时,作为开源项目,Squid拥有活跃的社区支持,使得用户可以持续获得更新和改进。

    squid缓存详细配置

    文档为squid缓存服务的配置文档,系统为CentOS部署,本人自己部署成功后整理的文档,绝对清晰。

    squid squidclient更新缓存工具

    而`缓存更新.exe` 可能是一个封装了Squidclient缓存更新功能的脚本或应用程序,为用户提供了更友好的界面或自动化更新的选项。 掌握Squid和Squidclient的使用,对于网络管理员、系统管理员以及任何需要管理大规模...

    利用Linux和Squid建立缓存代理服务器的优化方案研究.pdf

    在本文中,作者探讨了如何利用Linux操作系统和Squid软件构建一个优化的缓存代理服务器。Squid是一个开源的代理服务软件,允许用户自由使用和修改,常用于提高网络访问速度和效率。在基于Linux的环境中,Squid作为...

    squid缓存服务器的配置

    ### squid缓存服务器的配置详解 #### 一、概述与背景 Squid是一个高性能的代理缓存服务器,主要用于加速Web浏览,减少对外部网络的带宽需求,提高响应速度,以及提供一定的安全性和访问控制功能。在企业、教育机构...

    刷新squid缓存脚本

    清理squid缓存,直接执行sh 脚本名,不过还需要知道要清理的squid服务器列表和需要清理的url列表

    squid 强制缓存动态页面.docx

    【 squid 强制缓存动态页面】 在互联网访问中,Squid 是一款广泛应用的开源代理缓存服务器,能够显著提高网络访问速度,尤其是对于频繁请求的资源。然而,Squid 默认不会缓存动态内容,因为这类内容往往具有时效性...

    缓存代理服务器Squid-教程

    WEB缓存功能对于一个规模较大、访问繁忙的网络来说是有必要的,IBM网站上的一篇文章,详细分析介绍了WEB缓存给上网用户带来的好处: http://www-900.ibm.com/developerWorks/cn/web/webcachinga/index.shtml ...

    Squid for Windows 配置 有缓存

    squid for windows 2.7 以上版本

    Squid cache(简称为Squid)代理缓存服务器

    Squid Cache,通常简称为Squid,是一款广泛应用的开源代理服务器和Web缓存系统。它基于GNU通用公共许可证(GPL),允许用户免费获取、使用、修改和分发源代码。这款强大的软件旨在提高网络性能,通过在本地存储经常...

    squid_videocache:Squid可以提供网页缓存,但是对视频的支持不是很好,因为优酷、乐视等视频网站使用CDN技术,所以视频文件的URL是动态变化的。Squid使用完整的URL计算MD5 hash对于web对象。对于视频对象,本项目使用视频ID计算MD5哈希,可以保证Squid的视频缓存

    ├── etc squid配置文件├── libvideoreg 视频缓存动态链接库,用来解析不同视频网站URL├── squid-2.7.STABLE9-new 打过patch后的squid-2.7.STABLE9├── squid squid-2.7.STABLE9的视频缓存patch文件└──...

    Squid缓存代理服务器的安装与配置(普通代理 透明代理 反向代理)

    Squid缓存代理服务器的安装与配置(普通代理 透明代理 反向代理) Squid缓存代理服务器是一种流行的代理服务器和Web缓存服务器软件,广泛应用于提高Web服务器速度、缓存万维网、域名系统和其他网络搜索、帮助网络...

    squid缓存网站数据教程.zip

    squid缓存网站数据教程.zip

    Squid for windows 反向代理缓存服务器配置软件

    Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户想要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid 连接所申请网站并请求该...

    squid:Squid Web代理缓存

    - **安全更新**:定期更新 Squid 到最新版本,修复潜在的安全漏洞。 - **安全策略**:实施访问控制列表(ACLs),防止非法访问。 - **HTTPS 代理**:支持 SSL 代理,确保隐私和数据安全。 综上所述,Squid Web 代理...

    Squid 中文权威指南(8)

    总之,《Squid 中文权威指南》第八章深入探讨了高级磁盘缓存的各个方面,为用户提供了一套全面的优化方案,帮助他们在不同环境下高效运行Squid缓存服务器。通过理解和实践这些策略,用户可以最大化地利用磁盘资源,...

    搭建一个大型网站架构的实验环境(Squid缓存服务器篇).pdf

    在构建大型网站架构的实验环境中,Squid缓存服务器扮演着至关重要的角色。Squid是一个开源的HTTP代理缓存服务器,它能够显著提高网络性能,减少对远程服务器的请求,同时提供缓存和访问控制功能。在这个实验环境中,...

Global site tag (gtag.js) - Google Analytics