SQUID FOR WINDOWS配置

news/2024/9/2 23:34:28 标签: squid, windows, 缓存
本文中SQUID放在172.20.65.201的机器上,应用WEB SERVER IP为172.20.65.203,其中SQUID在201上的80端口侦听,测试客户端机器为172.20.65.231,在squid.conf中#代表注释,所以开启某项设置,需去掉前面的#。TAG标签代表每一功能项的设置。

1、下载

   下载SQUID FOR WINDOWS(我所用的版本是Squid 2.7.STABLE6,各个版本的配置可能略有不同,大家请注意)

2、安装
   将SQUID解压到c:\squid(当然也可解压在其它盘符下)
 
3、建立磁盘缓存和日志目录
   默认情况是在安装磁盘下建立,为确保性能大幅度提升,建立选择磁盘空间容量较大的盘符,如:建立d:\squid\var目录,在var目录下建立logs和cache目录,其中logs目录用   于存放日志,cache目录用于存放硬盘缓存数据。

4、建立缓存目操作权限
   为了使抓取的数据,能够存放在缓存目录下,建立系统账户如squidApp,将其属于普通用户组应可,将d:\squid授予该用户读写权限即可。
   
5、文件更改
   c:\squid\etc是SQUID的配置信息的存放处,为确保安全,在你修改配置文件前,请将其备份,然后将squid.conf.default修改为squid.conf,
   mime.conf.default修改为 mime.conf ,cachemgr.conf.default 修改为cachemgr.conf
 
6、配置SQUID
   针对于SQUID来讲大部分配都在squid.conf中,本文中所使用环境如下:

   开启如下访问控制
[plain]  view plain copy
  1. acl all src all  
  2. acl manager proto cache_object  
  3. acl localhost src 127.0.0.1/32  
  4. acl to_localhost dst 127.0.0.0/8  
  5. acl localnet src 172.16.65.231/255.255.0.0 指定本地网络及掩码  

   开启访问端口
[plain]  view plain copy
  1. acl SSL_ports port 443  
  2. acl Safe_ports port 80 # http  
  3. acl Safe_ports port 21 # ftp  
  4. acl Safe_ports port 443 # https  
  5. acl Safe_ports port 70 # gopher  
  6. acl Safe_ports port 210 # wais  
  7. acl Safe_ports port 1025-65535 # unregistered ports  
  8. acl Safe_ports port 280 # http-mgmt  
  9. acl Safe_ports port 488 # gss-http  
  10. acl Safe_ports port 591 # filemaker  
  11. acl Safe_ports port 777 # multiling http  
  12. acl CONNECT method CONNECT  

   开启访问控制,请一定要注意顺序
[plain]  view plain copy
  1. http_access allow manager localhost  
  2. http_access deny manager  
  3. http_access deny !Safe_ports  
  4. http_access deny CONNECT !SSL_ports  
  5. http_access allow all  
  6. http_access allow localnet  
  7. http_access deny all  

   指定SQUID在80端口侦听, vhost 指定使用加速模式
[plain]  view plain copy
  1. http_port 80 vhost   

    172.20.65.203后台WEB SERVER, parent指父节点, 80 指后台网站的端口, 0 ICP 服务端口,no-query  originserver 获取缓存时的选项
[plain]  view plain copy
  1. cache_peer 172.20.65.203       parent    80  0  no-query  originserver  
 
   缓存设置
[plain]  view plain copy
  1. maximum_object_size_in_memory 1024 KB  
  2. cache_dir ufs d:/squid/var/cache 1024 16 256 注意路径  
  3. maximum_object_size 4096 KB  
  4. cache_swap_low 90  
  5. cache_swap_high 95  

   日志设置
[plain]  view plain copy
  1. access_log d:/squid/var/logs/access.log squid 访问日志  
  2. cache_log d:/squid/var/logs/cache.log  
  3. cache_store_log d:/squid/var/logs/store.log  
  4. emulate_httpd_log on  

   控制页面缓存内容
[plain]  view plain copy
  1. refresh_pattern ^ftp: 1440 20% 10080  
  2. refresh_pattern ^gopher: 1440 0% 1440  
  3. refresh_pattern -i (/cgi-bin/|\?) 0 0% 0  
  4. refresh_pattern . 0 20% 4320  
  5. refresh_pattern -i \.css$ 20 50% 120 reload-into-ims  
  6. refresh_pattern -i \.xml$ 20 50% 120 reload-into-ims  
  7. refresh_pattern -i \.html$ 20 90% 120 reload-into-ims  
  8. refresh_pattern -i \.jpg$ 20 90% 120 reload-into-ims  
  9. refresh_pattern -i \.png$ 20 90% 120 reload-into-ims  
  10. refresh_pattern -i \.gif$ 20 90% 120 ignore-reload  
  11. refresh_pattern -i \.js$ 20 90% 120  reload-into-ims  
  12. refresh_pattern -i \.htm$ 20 90% 120 reload-into-ims  

   设置邮箱
[plain]  view plain copy
  1. cache_mgr webmaster_breeze  
 
   设置本地主机文件
[plain]  view plain copy
  1. hosts_file c:/windows/system32/drivers/etc/hosts  
 
7、安装服务
   将squid安装为服务,命令格式:
[plain]  view plain copy
  1. squid -i [-f configfile] [-n servicename],如c:\squid\sbin\squid -i -n Squid_Proxy  
 
8、初始化缓存目录 
[plain]  view plain copy
  1. c:\squid\sbin\squid -z   
 
9、启动Squid_Proxy服务 
   运行services.msc打开服务窗口,选择Squid_Proxy服务 ,如果启动过程出错90%是配置文件出现问题。

10、squid命令 
[plain]  view plain copy
  1. squid -k reconfigure  //启用新的配置文件   
  2. squid -k rotate       //截断日志   
  3. squid -k shutdown     //stop squid   
  4. squid -dx 当服务不能启动时,进行调试  
更多配置请参见文档
 
四、SQUID测试
找一台机器进行测试,并查看access.log日志,如果出现 TCP_DENY的信息,多为配置不正确。如出现如下信息TCP_MEM_HIT/200 表示,SQUID已经起作用,该请求是从 SQUID运行机器的内存中响应的。

######################
常用调试命令
######################

1、初始化你在 squid.conf 里配置的 cache 目录
#squid/sbin/squid -z //第一次启动squid服务时必须输入此命令

如果有错误提示,请检查你的 cache目录的权限。

2、对你的squid.conf 排错,即验证 squid.conf 的 语法和配置。

#squid/sbin/squid -k parse

如果squid.conf 有语法或配置错误,这里会返回提示你,如果没有返回,恭喜,可以尝试启动squid

3、在前台启动squid,并输出启动过程。

#squid/sbin/squid -N -d1
如果有到 ready to server reques,恭喜,启动成功。

然后 ctrl + c,停止squid,并以后台运行的方式启动它。

4、启动squid在后台运行。

#squid/sbin/squid -s

这时候可以 ps -A 来查看系统进程,可以看到俩个 squid 进程。

5、停止 squid

#squid/sbin/squid -k shutdown
这个不用解释吧。

6、重引导修改过的 squid.conf

#squid/sbin/squid -k reconfigure

这个估计用的时候比较多,当你发现你的配置有不尽你意的时候,可以随时修改squid.conf,然后别忘记对你的 squid.conf排错,然后再执行此指令,即可让运行中squid重新按照你的squid.conf 来运行。

7、把squid添加到系统启动项

编辑 /etc/rc.d/rc.local
添加如下行: /usr/local/squid/sbin/squid -s

当然,并不是每个人都喜欢这种启动方式,你可以用你最习惯的方式;或者把它安装为服务。


其他

1、修改cache 缓存目录的权限。

#chown -R squid:squid /home/cache

我的cache缓存目录是 /home/cache,squid执行用户和用户组是 squidsquid

2、修改squid 日志目录的权限

#chown -R squid:squid /usr/local/squid/var/logs
这一步并不是适合每一个使用squid的用户.意为让squid有权限在该目录进行写操作 。

例如生成 access.log cache.log store.log

3、查看你的日志文档。

#more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到内存中,并返回给访问用户。
#more /usr/local/squid/var/logs/access.log | grep TCP_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到cache目录中,并返回给访问用户。
#more /usr/local/squid/var/logs/access.log | grep TCP_MISS
该指令可以看到在squid运行过程中,有那些文件没有被squid缓存,而是现重原始服务器获取并返回给访问用户。
关于 TCP_XXXX 等参数及代表的信息,请参看彭勇华《squid中文权威指南》13.2.1 章节。

当然,本例中的蓝色文字是可以修改为其他的参数,例如你的域名,同样可以看到access.log里关于该域名的行。

4、squid -k rotate 轮换squid的日志文件/var/log/squid,Squid代理服务器日志文件
的增长速度是惊人的,很容易点球满磁盘空间导致系统不能正常工作,甚至是死机.为了解决日志文件增长太快的问题,squid采用了"轮换"的方法.在squid.conf中可以通过logfile_rotate来设置文件轮换的个数,如:
logfile_rotate 10 ,轮换的工作一般用crontab定时器完在周期性的日志轮换,例如每周六凌晨2:00进行日志轮换,则执行如下命令: crontab -e
0 2 * * 6 squid -k rotate
小贴士:Squid默认的错误提示信息为英文,对于英文不好的用户来说,实在不方便.在/etc/squid/squid.conf里添加如下:
error_directory /usr/share/squid/errors/Simplify_Chinese 即可显示中文的错误提示。

http://www.niftyadmin.cn/n/1599444.html

相关文章

2010 ACM-ICPC Multi-University Training Contest(6)——Host by BIT

又一次0封掉 赛后把最简单的那个二维费用背包做了。这个都不会说明还非常菜!

用Tomcat服务器访问本地资源

1.安装Tomcat 2.在本地任意盘符下创建文件夹TomcatFile&#xff0c;作为Tomcat访问的根目录&#xff0c;将资源文件放到该目录下 3.更改配置文件conf/server.xml <Host>标签下添加<Context docBase"D:\TomcatFile" reloadable"true" debug"…

scp命令的用法详解

这篇文章主要是参考了http://blog.csdn.net/jiangkai_nju/article/details/7338177这个博客&#xff0c;要看详细的内容可以参考这个博客进行学习研究&#xff0c;但是我觉得在以下的一些基本可以满足我们的文件传输要求了。 scp是linux中功能最强大的文件传输命令&#xff0c;…

持续集成之路——Maven

写在前面 自从参加了4月份的QCon以后&#xff0c;持续集成的念头一直在脑海中浮现。时隔四个月之后&#xff0c;终于有了实践的机会。在此&#xff0c;首先应该感谢头儿们的大力支持。记得参加Scrum的培训时&#xff0c;最开始提到的一个障碍就是来自上层。因为上层希望看到的是…

在vue项目中使用WebSocket

<template><div class"test"></div> </template> <script>export default {name : test,data() {return {websocket: null,}},created() {//创建websocket连接this.createWebSocket();},destroyed() {//关闭websocket连接this.socket.…

[Linux] 最简单的socket通讯例子

这个代码很简单&#xff0c;用途有两个&#xff1a; 1&#xff0c;刚入门的新同学可以参考。 2&#xff0c;想随手写个测试程序的同学可以拷贝。 server: #include <stdlib.h> #include <stdio.h> #include <string.h> #include <errno.h> #include …

从零撸一个日历用来显示数据

话不多说&#xff0c;先上效果图&#xff1a; html部分 <template><div><span class"searchFormItemLabel">选择月份</span><el-date-pickerclass"searchFormItemInput"v-model"yearMonth"format"yyyy年MM月&…

HDFS文件内容追加(Append)

[python] view plaincopyHDFS设计之处并不支持给文件追加内容&#xff0c;这样的设计是有其背景的&#xff08;如果想了解更多关于HDFS的append的曲折实现&#xff0c;可以参考《File Appends in HDFS》&#xff1a;http://blog.cloudera.com/blog/2009/07/file-appends-in-hdf…