- 论坛徽章:
- 0
|
我的squid2.6 透明代理配置如下, 测试成功目前已投入使用,
这次发上来和大家交流学习一下, 有错误或不对等,建议和改进请提出,
配置中加上我个入理解的注解, 如果不对或我个人了理错了,请高手门指正一下,
安装我就不说了啦
yum -y install squid #这样就可以安装了,
mkdir /home/cache
chown squid:squid /home/cache
chown squid:squid /var/log/squid
修改:vi /etc/squid/squid.conf 为
- #acl all src 0.0.0.0/0.0.0.0 and http_access allow all选项定义了一个访问控制列表。详细情况参见和Squid软件
- #携带的文档。这里的访问控制列表允许所有对代理服务的访问,因为这里该代理是加速web服务器。
- acl all src 0.0.0.0/0.0.0.0 #允许所有IP访问
- acl manager proto http #manager url协议为http
- acl localhost src 127.0.0.1/255.255.255.255 #允午本机IP
- acl to_localhost dst 127.0.0.1 #允午目的地址为本机IP
- acl Safe_ports port 80 # 允许安全更新的端口为80
- acl CONNECT method CONNECT #请求方法以CONNECT
- http_access allow all #允许所有人使用该代理.因为这里是代理加速web服务器
- http_reply_access allow all #允许所有客户端使用该代理
- acl OverConnLimit maxconn 16 #限制每个IP最大允许16个连接,防止攻击
- http_access deny OverConnLimit
- icp_access deny all #禁止从邻居服务器缓冲内发送和接收ICP请求.
- miss_access allow all #允许直接更新请求
- ident_lookup_access deny all #禁止lookup检查DNS
- http_port 8080 transparent #指定Squid监听浏览器客户请求的端口号。
- hierarchy_stoplist cgi-bin ? #用来强制某些特定的对象不被缓存,主要是处于安全的目的。
- acl QUERY urlpath_regex cgi-bin \?
- cache deny QUERY
- cache_mem 1 GB #这是一个优化选项,增加该内存值有利于缓存。应该注意的是:
- #一般来说如果系统有内存,设置该值为(n/)3M。现在是3G 所以这里1G
- fqdncache_size 1024 #FQDN 高速缓存大小
- maximum_object_size_in_memory 2 MB #允许最大的文件载入内存
- memory_replacement_policy heap LFUDA #动态使用最小的,移出内存cache
- cache_replacement_policy heap LFUDA #动态使用最小的,移出硬盘cache
- cache_dir ufs /home/cache 5000 32 512 #高速缓存目录 ufs 类型 使用的缓冲值最大允午1000MB空间,
- #32个一级目录,512个二级目录
- max_open_disk_fds 0 #允许最大打开文件数量,0 无限制
- minimum_object_size 1 KB #允午最小文件请求体大小
- maximum_object_size 20 MB #允午最大文件请求体大小
- cache_swap_low 90 #最小允许使用swap 90%
- cache_swap_high 95 #最多允许使用swap 95%
- ipcache_size 2048 # IP 地址高速缓存大小 2M
- ipcache_low 90 #最小允许ipcache使用swap 90%
- ipcache_high 95 #最大允许ipcache使用swap 90%
- access_log /var/log/squid/access.log squid #定义日志存放记录
- cache_log /var/log/squid/cache.log squid
- cache_store_log none #禁止store日志
- emulate_httpd_log on #将使Squid仿照Web服务器的格式创建访问记录。如果希望使用
- #Web访问记录分析程序,就需要设置这个参数。
- refresh_pattern . 0 20% 4320 override-expire override-lastmod reload-into-ims ignore-reload #更新cache规则
- acl buggy_server url_regex ^[url]http://....[/url] http:// #只允许http的请求
- broken_posts allow buggy_server
- acl apache rep_header Server ^Apache #允许apache的编码
- broken_vary_encoding allow apache
- request_entities off #禁止非http的标分准请求,防止攻击
- header_access header allow all #允许所有的http报头
- relaxed_header_parser on #不严格分析http报头.
- client_lifetime 120 minute #最大客户连接时间 120分钟
- cache_mgr [email]sky@test.com[/email] #指定当缓冲出现问题时向缓冲管理者发送告警信息的地址信息。
- cache_effective_user squid #这里以用户squid的身份Squid服务器
- cache_effective_group squid
- icp_port 0 #指定Squid从邻居服务器缓冲内发送和接收ICP请求的端口号。
- #这里设置为0是因为这里配置Squid为内部Web服务器的加速器,
- #所以不需要使用邻居服务器的缓冲。0是禁用
- # cache_peer 设置允许更新缓存的主机,因是本机所以127.0.0.1
- cache_peer 127.0.0.1 parent 80 0 no-query default multicast-responder no-netdb-exchange
- cache_peer_domain 127.0.0.1
- hostname_aliases 127.0.0.1
- error_directory /usr/share/squid/errors/Simplify_Chinese #定义错误路径
- always_direct allow all # cache丢失或不存在是允许所有请求直接转发到原始服务器
- ignore_unknown_nameservers on #开反DNS查询,当域名地址不相同时候,禁止访问
- coredump_dir /var/log/squid #定义dump的目录
- max_filedesc 2048 #最大打开的文件描述
- half_closed_clients off #使Squid在当read不再返回数据时立即关闭客户端的连接。
- #有时read不再返回数据是由于某些客户关闭TCP的发送数据
- #而仍然保持接收数据。而Squid分辨不出TCP半关闭和完全关闭。
- buffered_logs on #若打开选项“buffered_logs”可以稍稍提高加速某些对日志文件的写入,该选项主要是实现优化特性。
复制代码
在命令提示符中输入squid –z #创建cache文件 ,如果squid.conf有错会提示的,按提示排错。
service squid restart 重新启动
iptables 设定
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
ok设置完成, 可以测试了,
当你把apache 停止时候,就可以了看到squid的错误信息了, apache 打开的时候,
访问网站的记录,全部记录到 vi /var/log/squid/access.log 里面, 打开网站时候检查这log是不是不断刷新,如果有更新那就OK拉, |
|