研究了文档发现在squid实现cdn或代理前最好先处理检查一下问题:
,每G磁盘空间需要32M内存,如此512M内存能支持16G的磁盘缓存。
加入你的用户每天8小时耗费1M流量,那就是每天大约3.5G,因此可以说每Mweb传输需要10到25G的磁盘空间。
A linux查看文件描述符限制:
ulimit -n unlimited
或
ulimit -n
(以便为1024,但是要使用squid,最好修改为8192)
修改方法如下:
编辑 /usr/include/bits/types.h
改变 _FD_SETSIZE的值:
define __FD_SETSIZE 8912
下一步修改内核文件木舒服的限制:
echo 8912 > /usr/sys/fs/fiie-amx
最后增加进程文件 描述的限制:
ulimit -Hn 8192
以上为中文文档所写,但无法找到;此为成功找到如下:
(# vi /usr/include/bits/typesizes.h
# vi /usr/include/linux/posix_types.h
把里边的 #define __FD_SETSIZE 1024 改成 65536
2,设置当前环境
# ulimit -Hs 65536
# ulimit -n 65536)
B:
修改linux系统端口号:
echo “1023 400000” > /proc/sys/net/ipv4/ip_local_port_range
(临时端口号为1024 到40000)
2,CONNECT
CONNECT方法非常特殊,它是用于通过http代理来分装某种请求的方法,在处理CONNECT方法和远程的端口时应该特别谨慎
如:
您不希望squid连接到某些远程服务,您应该限制CONNECT连接,仅能连接到https/ssl或nntps端口设置如下:
acl CONNECT method CONNECT
acl SSL_ports 443 563
http_access allow CONNECT SSL_ports
http_access deny CONNECT
3,myport
假如你在http_port指令里指定的不止一个端口,那么squid就可以在不同的端口上监听。
如果将squid座位http加速器和用户代理服务器,那么myportACL特别有用了
如:
acl AccelPort myport 80
acl ProxyPort mysqlport 3128
acl MyNet src 10.111.5.0/28
http_access allow AccelPort #anyone
http_access allow ProxyPort MyNet #only my users
http_access deny ProxyPort #deny others
4,ident
第六个pdf,第12页
5,path_auth
squid当前支持三种技术以接受用户验证:HTTP基本协议,数字认证协议,和NTLM。
auth_param指令控制对所有的辅助程序的配置,
auth_param指令和proxy_auth ACL是少数在配置文件里顺序重要的实例。你必须在proxy_auth ACL之前定义至少一个严重辅助程序(使用auth_param),如果你没有这样做,squid打印出错消息,
并忽略proxy_auth ACL。
6,srcdom_regex,dstdom_regex,url_regex,
如:
acl WrbSite dotdom_regex -i ^www \ .
匹配以www开头的主机名
acl DHCPUser srcdom_regex -i ^dhcp
匹配以dhcp开头的主机名,如dhcp12.edong.com 而不是海鸥身体2.dhcp.edong.com
url_regex:设置url的过滤
urlpath_regex 与上很相似,不过传输协议和主机名不保函在匹配条件中,
如:
拒绝url里有sex,但仍允许主机名里面有sex的请求那么:
acl sex urlpath_regex sex
又如:
捕获cgi
acl CGI urlpath_regex ^/cgi-bin
7,
如果一个ACL太长,可以在一个文件夹内写上,然后在指定地址就好了。
acl Foo BadClients “/usr/local/squid/etc/BadClients”
在BadClients文件内这样写入
1.2.3.4
1.2.3.5
1.2.3.6
每个ip是一个单行.
8,在缓存目录被激活后最好不要在修改文件L1,L2的大小,因为缓存目录内被存储的文件ip是用L1,L2来实现的,如果修改容易造成无法访问现象。
9,使用read-only可以实现撤除某个缓存目录的切换,也就是说不自往要撤除的缓存目录写东西,过段时间及可撤除。
max-size 指定存储的文件大小的最大,以字节来说。
10,编译的参数解释:
--enable-carp
现在开始安装和设置cdn
因为squid在存储和访问时需要调用很多文件,所有需要增大文件描述符。
a,设置“文件描述符”,并设置用户同时打开文件数量
# vi /usr/include/bits/typesizes.h
# vi /usr/include/linux/posix_types.h
把里边的 #define __FD_SETSIZE 1024 改成 65536
2,设置当前环境
# ulimit -Hs 65536
# ulimit -n 65536
1,编译参数:
configure --prefix=/www/sqdn/sqdn --enable-dlmalloc --with-pthreads --enable-poll --disable-internal-dns --enable-stacktrace --enable-removal-policies="heap,lru" --enable-delay-pools --enable-storeio="aufs,coss,diskd,ufs" --with-maxfd=65536
2,设置参数
visible_hostname sqdn289
http_port 80 vhost vport
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mem 8 MB
maximum_object_size 4096 KB
cache_dir ufs /www/sqdn/sqdn/var/cache 1024 16 256
access_log /www/sqdn/sqdn/var/logs/access.log squid
hosts_file /www/sqdn/sqdn/etc/hosts
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
http_port 203.191.147.36:80 vhost vport
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow all
{{{{(此处注意我想的是如果不做个人策略就要allow)
{再小说些,如:
acl customers dstdomain "/www/sqdn/sqdn/domains"
http_access allow customers
在domians中添加上cdn.langzi289.com.cn
然后就可以修改为http_access deny all
及所有在domains内的域名才才能使用此cdn服务器)}}}
http_reply_access allow all
icp_access allow all
always_direct allow all
coredump_dir /www/sqdn/sqdn/var/cache
3,启动父进程与子进程如下:
root 32598 0.0 0.1 5448 652 ? Ss 10:52 0:00 /www/sqdn/sqdn/sbin/squid -s
nobody 32600 0.0 0.8 8664 4508 ? S 10:52 0:00 (squid) -s
4,添加hosts_file
/www/sqdn/sqdn/etc/hosts
222.191.251.52 cdn.langzi289.com.cn
222.191.251.52 cdn289.langzi289.com.cn
(此处仅是为了访问是不查询dns而提高网址速度和domains文件不一样,domains是策略添加域名)
5,cdn域名解析
将cdn.langzi289.com.cn 和cdn289.langzi289.com.cn 解析到203.191.147.36(也就是cdn服务器上)
收藏于 2009-09-04