一台主机,多个域名,squid如何只对一个域名的网站代理,不影响其他的域名网站的访问?有一台主机,一个外网ip 1.2.3.4 ,上面跑了三个站img.A.com bbs.A.com news.A.com
img.A.com是图片服务器,现在想用squid做img.A.com反向代理,来缓存加速
现在三个网站都是80端口,只是主机名(域名)不同,想在不影响原来端口和域名配置的sk2情况下,为img.A.com 做反向代理加速
但是问题是,squid 设为80端口监听以后,客户怎么通过squid来访问原来的 bbs.A.com 和 news.A.com回复 #1 momox 的帖子本以为来这里可以解决问题,结果连个回复都没有,唉,难道高手都闭关修炼去了
靠人不如靠自己,问题已经解决了,贴出来大家共享下巴,可怜我调服务器调到1点钟
# 监听80端口,并配置为加速模式
http_port 80 vhost vport http11
# cache服务器之间通信的端口UDP
icp_port 3130
# cache服务器的名称
visible_hostname nn.xx.com
# cache目录和大小的设置,1GB硬盘空间和500M内存
cache_dir aufs f:/squid/var/cache 2048 16 256
#cache_dir null f:/squid/var/cache
cache_mem 500 MB
#不记录访问日志
#access_log f:/squid/var/logs/access.log squid
access_log none
#记录squid日志
cache_log f:/squid/var/logs/cache.log
#不记录缓存存储日志
#cache_store_log f:/squid/var/logs/store.log emulate_httpd_log on
cache_store_log none
cache_swap_low 90
cache_swap_high 95
/>minimum_object_size 0 KB
maximum_object_size 1 MB
maximum_object_size_in_memory 4 MB
######强烈建议写上下面两句,经测试能显著提高Mem_hit 至少我的很有效#####
memory_replacement_policy heap LFUDA
cache_replacement_policy heap GDSF
memory_pools on
memory_pools_limit 500 MB
# 设置要缓存的“图片服务器”的地址,这里我设为缓存本机8080 端口,对应外网为 img.A.com
cache_peer 127.0.0.1 parent 8080 0 no-query originserver no-digest name=ImgDataServer
# 设置要不缓存,只是代理转发的 新闻服务器的地址,这里我设为缓存本机8081 端口,对应外网为 news.A.com
#若要缓存,把proxy-only 改成 originserver 即可
cache_peer 127.0.0.1 parent 8081 0 no-query proxy-only no-digest name=NewsDataServer
# 设置要不缓存,只是代理转发的 论坛服务器的地址,这里我设为缓存本机8082 端口,对应外网为 bbs.A.com
cache_peer 127.0.0.1 parent 8082 0 no-query proxy-only no-digest name=BBSDataServer
# 注意了,这里设置外网用户访问过来,如何根据主机头转发到相应的本机站点
#设定 任何img.A.com 的请求都交给 mapDataServer,也就是我们做了缓存的图片服务器
cache_peer_domain ImgDataServer img.A.com
#设定 任何news.A.com 的请求都交给NewsDataServer,是我们只做转发的新闻服务器
cache_peer_domain NewsDataServer news.A.com
#设定 任何news.A.com 的请求都交给NewsDataServer,是我们只做转发的新闻服务器
cache_peer_domain BBSDataServer BBS.A.com
acl QUERY urlpath_regex cgi-bin \?
acl forcecache url_regex -i \.ashx
no_cache allow forcecache
no_cache deny QUERY
refresh_pattern -i \.ashx 1440 50% 10080 override-expire override-lastmod reload-into-ims ignore-reload
cache_vary on
# 主机文件路径
hosts_file c:/windows/system32/drivers/etc/hosts
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
# 允许所有用户访问
http_access allow all
# 缓存管理员
cache_mgr webmaster@example.com######强烈建议写上下面两句,经测试能显著提高Mem_hit 至少我http://www.jostech.net的很有效#####
memory_replacement_policy heap LFUDA
cache_replacement_policy heap GDSF
下面是我的分析,不知道对不对,大家指正:
memory_replacement_policy 这个是设定内存替换策略的,默认的lrf 是根据请求时间来决定是否缓存,也就是说越早请求的内容,越可能被squid丢弃而不放在内存,越是最近请求的内容就越可能被缓存在内存;
lrf 这种有一个致命的缺陷,那就是根据时间来决定缓存对象,而不是根据访问频率
所以我们应该设定为 heap LFUDA这个策略是根据访问频率来测算一个权衡值,越频繁访问的内容,就越可能被squid缓存在内存
至于 cache_replacement_policy heap GDSF 这个设定,可能要根据个人情况来设,我自己尝试GDSF比较适合我的情况
由于我的服务器是图片服务器,没加这两句之前 Mem_hit 3% disk_hit 97%
加了以后 Mem_hit 100% disk_hit 0%
高的有点出乎意料,不知道正不正常
ps:设定完以后,最好重启squid
此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/69607.html
img.A.com是图片服务器,现在想用squid做img.A.com反向代理,来缓存加速
现在三个网站都是80端口,只是主机名(域名)不同,想在不影响原来端口和域名配置的sk2情况下,为img.A.com 做反向代理加速
但是问题是,squid 设为80端口监听以后,客户怎么通过squid来访问原来的 bbs.A.com 和 news.A.com回复 #1 momox 的帖子本以为来这里可以解决问题,结果连个回复都没有,唉,难道高手都闭关修炼去了
靠人不如靠自己,问题已经解决了,贴出来大家共享下巴,可怜我调服务器调到1点钟
# 监听80端口,并配置为加速模式
http_port 80 vhost vport http11
# cache服务器之间通信的端口UDP
icp_port 3130
# cache服务器的名称
visible_hostname nn.xx.com
# cache目录和大小的设置,1GB硬盘空间和500M内存
cache_dir aufs f:/squid/var/cache 2048 16 256
#cache_dir null f:/squid/var/cache
cache_mem 500 MB
#不记录访问日志
#access_log f:/squid/var/logs/access.log squid
access_log none
#记录squid日志
cache_log f:/squid/var/logs/cache.log
#不记录缓存存储日志
#cache_store_log f:/squid/var/logs/store.log emulate_httpd_log on
cache_store_log none
cache_swap_low 90
cache_swap_high 95
/>minimum_object_size 0 KB
maximum_object_size 1 MB
maximum_object_size_in_memory 4 MB
######强烈建议写上下面两句,经测试能显著提高Mem_hit 至少我的很有效#####
memory_replacement_policy heap LFUDA
cache_replacement_policy heap GDSF
memory_pools on
memory_pools_limit 500 MB
# 设置要缓存的“图片服务器”的地址,这里我设为缓存本机8080 端口,对应外网为 img.A.com
cache_peer 127.0.0.1 parent 8080 0 no-query originserver no-digest name=ImgDataServer
# 设置要不缓存,只是代理转发的 新闻服务器的地址,这里我设为缓存本机8081 端口,对应外网为 news.A.com
#若要缓存,把proxy-only 改成 originserver 即可
cache_peer 127.0.0.1 parent 8081 0 no-query proxy-only no-digest name=NewsDataServer
# 设置要不缓存,只是代理转发的 论坛服务器的地址,这里我设为缓存本机8082 端口,对应外网为 bbs.A.com
cache_peer 127.0.0.1 parent 8082 0 no-query proxy-only no-digest name=BBSDataServer
# 注意了,这里设置外网用户访问过来,如何根据主机头转发到相应的本机站点
#设定 任何img.A.com 的请求都交给 mapDataServer,也就是我们做了缓存的图片服务器
cache_peer_domain ImgDataServer img.A.com
#设定 任何news.A.com 的请求都交给NewsDataServer,是我们只做转发的新闻服务器
cache_peer_domain NewsDataServer news.A.com
#设定 任何news.A.com 的请求都交给NewsDataServer,是我们只做转发的新闻服务器
cache_peer_domain BBSDataServer BBS.A.com
acl QUERY urlpath_regex cgi-bin \?
acl forcecache url_regex -i \.ashx
no_cache allow forcecache
no_cache deny QUERY
refresh_pattern -i \.ashx 1440 50% 10080 override-expire override-lastmod reload-into-ims ignore-reload
cache_vary on
# 主机文件路径
hosts_file c:/windows/system32/drivers/etc/hosts
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
# 允许所有用户访问
http_access allow all
# 缓存管理员
cache_mgr webmaster@example.com######强烈建议写上下面两句,经测试能显著提高Mem_hit 至少我http://www.jostech.net的很有效#####
memory_replacement_policy heap LFUDA
cache_replacement_policy heap GDSF
下面是我的分析,不知道对不对,大家指正:
memory_replacement_policy 这个是设定内存替换策略的,默认的lrf 是根据请求时间来决定是否缓存,也就是说越早请求的内容,越可能被squid丢弃而不放在内存,越是最近请求的内容就越可能被缓存在内存;
lrf 这种有一个致命的缺陷,那就是根据时间来决定缓存对象,而不是根据访问频率
所以我们应该设定为 heap LFUDA这个策略是根据访问频率来测算一个权衡值,越频繁访问的内容,就越可能被squid缓存在内存
至于 cache_replacement_policy heap GDSF 这个设定,可能要根据个人情况来设,我自己尝试GDSF比较适合我的情况
由于我的服务器是图片服务器,没加这两句之前 Mem_hit 3% disk_hit 97%
加了以后 Mem_hit 100% disk_hit 0%
高的有点出乎意料,不知道正不正常
ps:设定完以后,最好重启squid
此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/69607.html