|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- http_port 80 accel vhost vport
- cache_mem 1792 MB
- cache_dir ufs d:/squid/var/cache 20000 16 256
- maximum_object_size_in_memory 256 KB
- memory_pools_limit 64 MB
- acl all src 0.0.0.0/0.0.0.0
- http_access allow all
- cache_peer 218.85.137.20 parent 80 0 no-query originserver name=imgweb
- cache_peer_domain imgweb img.mydigit.net
- cache_peer_access imgweb allow all
- cache_effective_user nobody
- cache_effective_group nobody
- access_log none
- cache_log none
- cache_store_log none
- visible_hostname mydigit79
- cache_mgr mydigit.net@gmail.com
- http_port 80 vhost vport=80
- #dns_nameservers 218.85.152.99 218.85.157.99
- cache_vary on
- acl apache rep_header Server ^Apache
- broken_vary_encoding allow apache
- cache_mem 1792 MB
- maximum_object_size 4096 KB
- minimum_object_size 0 KB
- maximum_object_size_in_memory 256 KB
- cache_dir ufs d:/squid/var/cache 20000 16 256
- cache_swap_low 80
- cache_swap_high 97
- strip_query_terms off
- request_header_max_size 10 kb
- request_body_max_size 5 MB
- memory_pools on
- memory_pools_limit 64 MB
- pid_filename d:/squid/var/logs/squid.pid
- hosts_file C:\WINDOWS\system32\drivers\etc\hosts
- refresh_pattern ^ftp: 1440 20% 10080
- refresh_pattern ^gopher: 1440 0% 1440
- refresh_pattern -i \.gif$ 180 50% 12960 reload-into-ims ignore-reload
- refresh_pattern -i \.jpg$ 180 50% 12960 reload-into-ims ignore-reload
- refresh_pattern -i \.png$ 180 50% 12960 reload-into-ims ignore-reload
- refresh_pattern -i \.jpeg$ 180 50% 12960 reload-into-ims ignore-reload
- refresh_pattern -i \.txt$ 180 50% 12960 ignore-reload
- refresh_pattern -i \.rar$ 180 50% 12960 ignore-reload
- refresh_pattern -i \.zip$ 180 50% 12960 ignore-reload
- refresh_pattern -i \.7z$ 180 50% 12960 ignore-reload
- refresh_pattern -i \.pdf$ 180 50% 12960 ignore-reload
- refresh_pattern -i \.htm$ 180 50% 12960 ignore-reload
- refresh_pattern -i \.html$ 180 50% 12960 ignore-reload
- refresh_pattern . 60 20% 4320
- acl all src 0.0.0.0/0.0.0.0
- acl p-manager proto cache_object
- acl s-localhost src 127.0.0.1/255.255.255.255
- acl d-localhost dst 127.0.0.0/8
- acl d-domains dstdomain img.mydigit.net
- acl p-ssl port 443 563
- acl p-safe port 80 443 563
- acl m-conn method CONNECT
- acl m-purge method PURGE
- #acl n-maxconn maxconn 100
- http_access allow p-manager s-localhost
- http_access allow m-purge
- http_access allow !p-safe
- http_access deny m-conn !p-ssl
- #http_access deny n-maxconn
- http_access allow p-manager
- http_access allow d-domains
- http_access deny all
- http_reply_access allow all
- acl r-url urlpath_regex realtime
- cache deny r-url
- icp_access allow all
- follow_x_forwarded_for allow all
- acl_uses_indirect_client offrange_offset_limit -1
- dns_timeout 2 seconds
- forward_timeout 10 seconds
- connect_timeout 10 seconds
- peer_connect_timeout 6 seconds
- read_timeout 10 seconds
- request_timeout 6 seconds
- persistent_request_timeout 16 seconds
- cache_mgr mydigit.net@gmail.com
- cache_effective_user nobody
- cache_effective_group nobody
- visible_hostname mydigit140
- logfile_rotate 10
- always_direct allow all
- error_directory C:\squid\share\errors\Simplify_Chinese
- coredump_dir d:/squid/var/cache
- #access_log d:/squid/var/logs/access.log squid
- #cache_log d:/squid/var/logs/cache.log
- #cache_store_log d:/squid/var/logs/store.log
- access_log none
- cache_log none
- cache_store_log none
复制代码
http_port 80 accel vhost vport
accel 表示反向代理加速模式使用
vhost 在使用accel时,至少要加vhost,表示后面web服务器是基于域名的虚拟主机。
vport 如果后端 的web服务器是基于ip的虚拟主机,则使用
设定squid为accel加速模式,vhost必须要加.否则将无法将主机头转发至后端服务器,访问时就会出现无法找到主机头的错误
http_port 80:指定Squid所服务的端口为80
http_port 80 transparent
支持透明代理,主要用于内网访问外网
问:单位新项目用squid作反向代理服务器,这两天看了不少关于squid配置的文档,但是关于squid.conf文件中的http_port参数的一些选项还存在疑问,希望大家能给些帮助。
一般反向代理会有如下配置:http_port 80 accel vhost vport
非常疑惑accel,vhost,vport这三个参数的用途,手册、配置文档以及网络文章都查了,都是那么几句话解释,但我实在看明白,请不要转帖哪些解释了。
我曾经试图在配置文件中去掉accel选项,squid重启后,并没有任何异常,而vhost选项去掉后,网页就无法正常访问了,所以最好可以举例说明这几个参数的用途,譬如干啥用的,加了它起什么作用,不加它有何影响
答:
http://old.squid-cache.org/Doc/Users-Guide/detail/accel.html
http://www.visolve.com/squid/squid26/network.php
仔细看着这两个链接
说一下我的理解吧:
1、如果你不加http_port 80 accel vhost vport 这个配置的话,squid默认就作为一个缓存服务器(cache server, 参考第一个链接),这个时候如果客户端有请求发到了squid,squid起到的是路由功能,把请求转发出去,被真正的web server接收,web server返回响应,当squid接收到响应后,根据响应头决定是否缓存,此时的squid,只是一个cache server。
2、如果你加http_port 80 accel vhost vport 这个配置的话,squid就从一个缓存变成了一个web server(参考第一个链接), 这个时候squid在80端口监听请求,同时和web server的请求端口(vhost vport)绑定,这个时候请求到了squid,squid是不用转发请求的,而是直接要么从缓存中拿数据要么向绑定的端口直接请求数据。另外绑定端口还有一个好处,可以充分利用http 响应头中的到期时间头和etag头。
3、你提到“去掉accel选项,squid重启后,并没有任何异常”,这个参考第二个链接,如果你设置了vhost vport, 默认是具有的(Implies accel)
设定squid为accel加速模式,vhost必须要加.否则将无法将主机头转发至后端服务器,访问时就会出现无法找到主机头的错误
maximum_object_size 4096 KB
能缓存的最大文件大小,对应wmv,rm文件,建议设置为32768 kB,默认4096KB,对于论坛附件最大为3MB,所以设置为4096KB
minimum_object_size 0 KB
小于此大小的文件将不被缓存,默认0KB,一般不用设置
maximum_object_size_in_memory 256 KB
内存中能缓存的最大文件大小,以缓存常用的小文件为主
例如Mean Object Size: 160.46 KB,一般要把maximum_object_size_in_memory设置成离它最近的128的倍数.在这个例子中maximum_object_size_in_memory 的值应该是256kB.
对象的最大尺寸,超过不会被放入内存,默认8KB,根据网站网页一般的尺寸设置大小,最好是4kb的倍数
cache_dir ufs d:/squid/var/cache 20000 16 256
#指定squid用来存储对象的硬盘交换空间的大小及其目录结构。缓存的目录,放在squid/var/下面,单位MB,这个大小是20G,第一级目录是16个,第二级目录是256个。因为一个目录下面放置的文件和目录数量有限制,所以这里必须要设置多个目录,以适合squid存放大量文件的需要。目录数千万别设置太大,否则会引起系统死机.
cache_swap_low 80
cache_swap_high 95
cache_swap_low和cache_swap_high指令控制了存储在磁盘上的对象的置换。它们的值是最大cache_dir体积的百分比,这个最大cache体积来自于所有cache_dir大小的总和。
如果总共磁盘使用低于cache_swap_low,squid不会删除cache目标。如果cache体积增加,squid会逐渐删除目标。在稳定状态下,你发现磁盘使用总是相对接近cache_swap_low值。你可以通过请求cache管理器的storedir页面来查看当前磁盘使用状况.
请注意,改变cache_swap_high也许不会对squid的磁盘使用有太大效果。在squid的早期版本里,该参数有重要作用;然而现在,它不是这样了。
cache_mem 1792 MB
是SQUID可用到的最大内存
一般设置成服务器内存的一半或更多,只要运行过程中LINUX没有使用SWAP就可以.
#实际测试Win2003系统最好少于2048MB,或者等于系统内存的1/3,不然进程会死掉。
memory_pools off
squid预先分配一定的内存用于cache,以提高效率,默认on;如果os内存管理很高效,可以off
如果你将该项设为on,则squid将保留所有已经分配(但是未使用)的内存池以便在将来使用。缺省为on,memory_pools on
memory_pools_limit 50 MB
#内存池,用来存放缓存文件的链表,方便高速查找文件存放的对应位置,不需要太大。不懂就别管了
squid在memory_pools中保存的预分配(未使用的)内存的上限,当pools开启时有效,0表示不限制大小,最好设一个的值,大些,以保证内存效率,实际不一定会用到这个值,默认5MB。这个值可以设置为64-128MB,squid会根据需求占用之。
在服务器只提供proxy服务而没有像apache那样的其它服务时,可以关闭memory_pools 选项,让squid自动决定分配多少内存:
memory_pools off
memory_pools_limit none
如果不是专门的服务器,就要打开memory_pools 选项,适当的设置
cache_vary on
默认on,表示可以缓存静态文件
emulate_httpd_log on
使Squid按照Web服务器的格式创建访问记录,Web访问记录分析程序,就需要设置这个参数
hosts_file C:\WINDOWS\system32\drivers\etc\hosts
#DNS域名解析的文件目录,也就是主服务器的IP,告诉SQUID要到哪里去抓取数据,内部格式如:61.129.33.42 img.mydigit.net
cache_peer 192.168.21.129 parent 80 0 no-query originserver name=imgweb
#用户访问web时,Squid向192.168.21.129源服务器的80端口发送请求,no-query为不发送icp信息包到此机器,一般设置原始主机用(源服务器),如果也是cache机,则需要互相发送icp包验证存在性。originserver指定此机为原始内容服务器,用于加速模式
cache_peer_domain imgweb img.mydigit.net
#设置web域名为img.mydigit.net
cache_peer_access imgweb allow all
#设置访问权限,允许所有外部客户端访问web
cache_effective_user squid
#设置运行SQUID的用户,Windows系统下使用nobody
cache_effective_group squid
#设置运行SQUID的用户组,Windows系统下使用nobody
visible_hostname mydigit79
出错时缓存服务器输出的机器名字,多台squid分布的时候这个很重要,通过设置多个不同的名字,很容易就可以找出哪台服务器有问题。
#限制同一IP客户端的最大连接数
acl OverConnLimit maxconn 15
http_access deny OverConnLimit
查看命中率:C:\squid\bin>squidclient -p 80 mgr:info
|
|