squid:测试

© ㄒiger / Posted in 杂七杂八 / June 21, 2012

测试反向代理..... 不停的修改折腾。杯具的事情,百度快照都没了。。。

前端:Portland,San Jose,Los Angeles,Chicago,Dallas,Fremont.....

后端 :E5506  8G  4x2T 独立服务器

面板:Directadmin

演示:现在打开的就是.... 不同IP段or不同C段....

© ㄒiger / Posted in 杂七杂八 / June 21, 2012

acl allowuser 192.168.1.1/32
cache_peer 192.168.1.50 parent 81 0 no-query originserver weight=1 name=a
cache_peer 192.168.1.50 parent 82 0 no-query originserver weight=1 name=b
cache_peer 192.168.1.50 parent 80 0 no-query originserver weight=1 name=c

cache_peer_domain a
www.serverA.com
cache_peer_domain b www.serverB.com
cache_peer_domain c www.serverC.com

#以上六行配置表示:
#从客户端过来的请求,如果是
www.serverA.com则Squid向 Server 192.168.1.50的端口81发送请求;
#
从客户端过来的请求,如果是
www.serverB.com则Squid向 Server 192.168.1.50的端口82发送请求;
#从客户端过来的请求,如果是 www.serverC.com则Squid向 Server 192.168.1.50的端口80发送请求;
#换句话说:设定不同域名转发到不同的cache_peer上,如果没有这项.不同的域名可能被分发到同一台服务
器(或同一台服务器的端口)上.
#name=a表示给cache_peer一个别名
cache_peer_access a allow all
cache_peer_access b allow all
cache_peer_access c allow all
#设置访问权限,允许所有外部客户端访问 a b c
#如果是cache_peer_access a allow allowuser
#表示只允许allowuser访问 www.serverA.com
另一个例子:
acl user1 src 192.168.2.68/32
acl user2 src 192.168.2.94/32
#定义两个user IP

cache_peer 192.168.2.172 parent 80 0 no-query no-digest originserver name=www1 sourcehash
cache_peer 192.168.2.173 parent 81 0 no-query no-digest originserver name=www2 sourcehash
cache_peer_domain www1 www.domain.com
cache_peer_domain www2 www.domian.com
#表明对www.domian.com的请求,squid向192.168.2.172的80端口和192.168.2.173的81端口发出请求
cache_peer_access www1 allow user1
cache_peer_access www2 allow user2
#允许user1访问192.168.2.172的80端口
#允许user2访问192.168.2.173的81端口
设置子父代理的cache_peer:

如果要设置父级的代理服务器,例如proxy.test.edu.cn那么可以这样配置

在#cache_peer hostname type 3128 3130 之下加入

cache_peer proxy.test.edu.cn parent 3128 3130 no-query no-netdb-exchange

 

如果要设置同级的代理服务器,如:192.168.1.41 192.168.1.42则可以这样来配置

cache_peer 192.168.1.41 sibling 3128 3130 proxy-only

....

注意目前各单位施行代理服务器分级管理,设置父级代理服务器,还必须取得上层单位的同意

继续阅读全文... »

© ㄒiger / Posted in 程序代码 / June 21, 2012

squid.conf
#
acl CactiServer src 192.168.0.119
acl snmpcommunity snmp_community public
snmp_port 3401
snmp_access allow snmpcommunity CactiServer
#这部分是为cacti的监控设置
#用snmpwalk -c public -v1 192.168.0.119:3401 .1.3.6.1.4.1.3495.1 测试是否成功
#

visible_hostname cache.lamiu.com
cache_effective_user squid
cache_effective_group squid # 启动的用户与组
cache_mgr yangting@lamiu.com
cache_dir ufs /var/cache/squid/cache/ 1024 16 128 #缓存的路径,大小为1024M 16个头目录,128个子目录
cache_mem 128 MB #内存

cache_peer www.lamiu.com parent 80 0 no-query originserver name=www
cache_peer bbs.lamiu.com parent 80 0 no-query originserver name=bbs #定义不同的父节点,将节点设为no-query以及originserver说明这些节点是实际服务器

cache_peer_domain www www.lamiu.com
cache_peer_domain bbs bbs.lamiu.com #设定不同域名转发到不同的cache_peer上,如果没有这项.不同域名的域名可能被分发到同一台服务器上.

acl all src 0.0.0.0/0.0.0.0
http_access allow all #允许所有客户端访问

cache_swap_high 100%
cache_swap_low 95% #(cache_swap_low 和cache_swap_high 指令控制了存储在磁盘上的对象的置换。它们的值是最大cache 体积的百分比,这个最大cache 体积来自于所有cache_dir 大小的总和)

maximum_object_size 1024 KB #大于此容量的对象将不会被保存在磁盘上,默认大小是4M,
maximum_object_size_in_memory 100 KB # 最大位于内存中的对象的大小,默认大小是8K,

hierarchy_stoplist cgi-bin ?
hierarchy_stoplist -i ^https:\\ ? #squid将请求标记为不可层叠,直接转发

emulate_httpd_log on #打开emulate_httpd_log选项,将使Squid仿照Aapche的日志格式
cache_store_log none #这个设置是不记录store.log
pid_filename /var/log/squid/squid.pid
cache_log /var/log/squid/cache.log
access_log /var/log/squid/access.log
half_closed_clients off #半关闭状态的TCP连接,设为off,则一旦从客户端返回“no more data to read”的信息,squid就立即关闭该连接
logfile_rotate 4 #可以用logfile_rotate 0来取消自动操作

acl QUERY urlpath_regex -i cgi-bin \? \.php \.xml
acl denyssl urlpath_regex -i ^https:\\
no_cache deny QUERY
no_cache deny denyssl #不对符合QUERY,denyssl的ACL内容进行缓冲

acl localhost src 127.0.0.1/255.255.255.255
acl manager proto cache_object
acl purge method PURGE
http_access allow manager localhost #cache_object是squid的缓存管理接口,这配置行只允许本机的缓存管理请求
http_access allow purge localhost #只有本机能删除了cache目标 squidclien -m PURGE -p 80 http://www.***.com

acl FTP proto FTP
http_access deny FTP #拒绝所有的FTP请求

#refresh_pattern 指令间接的控制磁盘缓存。
#refresh_pattern [-i] regexp min percent max [options]
refresh_pattern -i \.jpg$ 30 50% 4320 reload-into-ims
refresh_pattern -i \.htm$ 0 20% 1440

#refresh_pattern 指令也有少数选项导致squid 违背HTTP 协议规范。它们如下:
override-expire
该选项导致squid在检查Expires 头部之前,先检查min 值。这样,一个非零的min 时间让squid返回一个未确认的cache 命中,即使该响应准备过期。
override-lastmod
改选项导致squid 在检查LM-factor 百分比之前先检查min 值。
reload-into-ims
该选项让squid 在确认请求里,以no-cache 指令传送一个请求。换句话说,squid 在转发请求之前,对该请求增加一个If-Modified-Since 头部。注意这点仅仅在目标有Last-Modified时间戳时才能工作。外面进来的请求保留no-cache 指令,以便它到达原始服务器。
ignore-reload
该选项导致squid 忽略请求里的任何no-cache 指令。
#squidclient -r -p 80 http://www.***.com 能Force cache to reload URL

© ㄒiger / Posted in 主机域名 / June 19, 2012

无聊贴,记录折腾记录.. ..部分可能有错误,仅供参考

lnmp一键安装包(lnmp.org)

squid 2.6.STABLE21(直接yum install squid 安装)

目的:前端squid 反向代理后端web站点以及反向代理其他外部站点

首先安装好lnmp环境,安装过程参考,http://lnmp.org/install.html 

然后安装squid

yum install squid

然后删除 /etc/squid/squid.conf

rm  /etc/squid/squid.conf

下载squid.conf配置文件 (端口80)

cd /etc/squid/
wget http://tiger.im/soft/squid.conf

假设使用8001端口做后端web访问端口 前端squid使用80端口

vi squid.conf

找到如下:

cache_peer 127.0.0.1  parent 8001 7 no-query originserver name=www1 


cache_peer_domain www1 tiger.im www.tiger.im 

127.0.0.1是反向本机后端web站点 也可以换成其他的 端口8001

cache_peer_domain www1 域名 为后端绑定的域名

如果是多站点反向代理,继续可以添加,

cache_peer 123.123.123.123 parent 8001 7 no-query originserver name=www2

cache_peer 192.168.1.1 parent 8001 7 no-query originserver name=www3

cache_peer_domain www2 ds.tiger.im www.tiger.im

cache_peer_domain www3 test.tiger.im www.tiger.im

修改完毕后,先不着急启动squid..开始修改lnmp的参数

需要修改nginx.conf 

vi /usr/local/nginx/conf/nginx.conf
server
        {
                listen       8001;

 将端口80换成8001

然后修改 vhost.sh 里面的端口为8001

server
        {
                listen       8001;
                server_name $domain$moredomainame;
                index index.html index.htm index.php default.html default.htm default.php;

这样添加域名的时候默认自动端口为8001

重启下lnmp  : 

/root/lnmp restart

启动squid

service squid start

设置开启启动squid

chkconfig --add squid
 chkconfig --level 2345 squid on

ok.....好吧,很罗嗦的写完了.

© ㄒiger / Posted in 杂七杂八 / April 18, 2012

最近不太平,DS也挂了,数据没了.fastvps年付的从3月多买来。然后就是悲剧。

从西雅图换到芝加哥,然后node悲剧。还好买来没怎样用。本来打算做squid反向代理用。年付12刀的

不过服务挺不错。至少出问题。会先通知客户。不会一声不吭等客户去问。 虽然数据不能恢复了。很主动...

Dear customers,

As you see this weekend we sent you a new welcome email.
0ur technicians have not be able to recover the data on the old server.

The new raid card cannot read the data on the old hard drive! So the data can not be transferred.
All our customers who wishes to obtain the free month of compensation please send us a email to billing@fastvps.co and we will apply this week.
We are sorry for the  inconveniences.

Sincerely,

FastVPS.co