您的位置:首页 > 运维架构 > 反向代理

服务器迁移---squid反向代理 推荐

2008-03-18 15:23 357 查看
前言:
公司服务器需要进行迁移,从A机柜到B机柜,二机柜之间的距离为10米。哈哈。好近,尽管很近,但IP段不一样。
因此web,dns,mail,mysql 都得切换~
在这里呢,先写一些切换前的准备工作,squid 反向代理就是其中之一

特别感谢IORI,明的指点!!!感谢党,感谢人民,感谢51CTO,感谢你们~

一.反向代理的概念

  什么是反向代理呢?其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的

WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。典型的结构如下图所示:





Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器

(这也是反向代理名称的由来)。实施反向代理(如上图所示),只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当

互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时

Reverse Proxy Server设备充当Web服务器,浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理

服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。

二.反向代理工作原理

  反向代理服务器位于本地WEB服务器和Internet之间,如下图所示:





  当用户浏览器发出一个HTTP请求时,通过域名解析将请求定向到反向代理服务器(如果要实现多个WEB服务器的反向代理,需要将多个WEB

服务器的域名都指向反向代理服务器)。由反向代理服务器处理器请求。反向代理一般只缓存可缓冲的数据(比如html网页和图片等),而一

些CGI脚本程序或者ASP之类的程序不缓存。它根据从WEB服务器返回的HTTP头标记来缓冲静态页面。

以上来自互联网

三.squid做反向代理

1.安装
注:如果系统是redhat 9,需要安装epoll的库文件(epoll有效的降低系统的I/0瓶颈,资源占用率)

wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE2.tar.gz
为了安全起见,建立squid运行的用户及组
useradd squid -M -c "Squid user" -d /dev/null -s /sbin/nologin
tar zxvf squid-3.0.STABLE2.tar.gz
cd squid-3.0.STABLE2
./configure --prefix=/usr/local/squid3 --disable-carp --with-aufs-threads=32 --with-pthreads --enable-storeio='ufs,aufs,coss,null' --enable-disk-io='AIO,Blocking' --enable-removal-policies='heap,lru'
--disable-wccp --enable-kill-parent-hack --disable-snmp --disable-poll --disable-select --enable-auth=basic --with-aio
--disable-ident-lookup --with-filedescriptors=65536

编译参数:
--prefix=/usr/local/squid3 :指定安装路径 为便于管理
--enable-poll :提升性能
--enable-snmp :此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid
支持SNMP接口。
--enable-storeio=ufs,null #使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理
服务器,就需要加上null文件系统。
其它的参数等待大家来解释。HOHO ~

make;make install
安装完毕。

2.配置

注意:squid 的配置文件在:/usr/local/squid3/etc/squid.conf
这里是最重要的,也是最难的。

http_port 80 选项 http_port 指定squid监听HTTP请求的端口,一般都设置成80端口,这样使用户感觉不到反向代理的存在,就像访问真正
的WEB服务器一样。

cache_mem 128 MB 共享内存大小(squid在提供服务的时候所使用的内存)

maximum_object_size_in_memory 512 KB 最大内存缓存OBJECT值~如果超过则不再内存中缓存~而存入IO中!

memory_replacement_policy lru 替换机制 (lru叫做 最近不常用的单元 unit一般就是常说的object 也就是当cache中的内容比如内存或硬盘达到上限时的 那么就需要进行数据的换进和换出工作)

cache_dir null /tmp cache_dir存储cache内容也就是object的物理存放点 

cache_dir ufs /tmp1 10000 16 256 (/tmp size L1 L2)
100G其中1层目录16个 并且每个1层目录下又有256个2层目录[或者说子目录]
#磁盘缓存的类型和目录,大小,一二级目录的设置,这里磁盘缓存大小是10G
ufs是一种文件存储方式 因为os一般都是从内存获取数据 那么内存的东西必须最后写的硬盘上~
sync 同步的时候用的ufs 那么squid也是一样
ufs一般是同时写入内存和硬盘
注意:size是按照M为单位的也就这个目录中最大存储容量的上限

max_open_disk_fds 0

minimum_object_size 0 KB

maximum_object_size 4096 KB

logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
设置access_log中日志存储的格式~

access_log /usr/local/squid3/var/logs/access.log squid

access_log为客户端请求的日志 

cache_log /usr/local/squid3/var/logs/cache.log

为squid自身的运行日志 

pid_filename /usr/local/squid3/var/logs/squid.pid
此三项是设置PID和日志文件位置

cache_store_log none 不记录store.log

visible_hostname liuyu.blog.51cto.com
liuyu.blog.51cto.com 只是标签 有利于检查是否你的那台设备在提供服务!

cache_peer 192.168.1.53 parent 80 0 no-query round-robin max-conn=32 originserver
squid2.5以上都是用的cache_peer来指定所需要代理的服务器的IP 这一点很重要! 由于本例squid 与web 不在同一服务器,因此需要cache_peer 指定相应WEB服务器IP

acl all src 0.0.0.0/0.0.0.0

acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY

cache_effective_user squid
cache_effective_group squid

在这里我所以的日志都记录在:/usr/local/squid3/var/logs里
给目录相应的权限
chmod 666 -R /usr/local/squid3/var/logs
chown squid:squid -R /usr/local/squid3/var/logs

保存配置!

3.测试配置是否正确
# /usr/local/squid2/sbin/squid -k parse

出现ERROR:
WARNING: Cannot write log file: /usr/local/squid3/var/logs/cache.log
/usr/local/squid3/var/logs/cache.log: Permission denied
messages will be sent to 'stderr'.
2008/03/13 12:53:09| Creating Swap Directories
FATAL: Failed to make swap directory /usr/local/squid3/var/cache: (13) Permission denied

很明显权限不对,修改后测试通过!

/usr/local/squid2/sbin/squid -z 

-z Create swap directories 是创建SWAP目录的! 也就是cache_dir 中的目录

相关的调试命令:

http://bbs.chinaunix.net/thread-960422-1-1.html

4.启动squid
/usr/local/squid3/sbin/squid -Nd1
ps aux |grep squid 查看是否启动

5.测试访问WEB站点
本机hosts 文件指向squid代理服务器

出现ERROR:
Access Denied.
访问拒绝
Access control configuration prevents your request from being allowed at this time. Please contact your service provider if

you feel this is incorrect.
当前的存取控制设定禁止您的请求被接受,如果您觉得这是错误的,请与您网路服务的提供者联系。
本缓存服务器管理员:webmaster

配置文件设置不对:
acl all src 0.0.0.0/0.0.0.0
http_access allow all

重新测试:OK 一切正常~~~

查看相应日志一切正常。

四. 配置squid 是方便web进行切换,至于dns,mysql,mail切换文章请大家期待~

总体来说,squid 配置不是很麻烦,主要是配置文件里的每一项,对服务器的产生的影响非常的重要。细节决定成功~

安庆英语培训机构
安顺英语培训机构
安阳英语培训机构
鞍山英语培训机构
阿拉善英语培训机构
安康英语培训机构
阿坝英语培训机构
阿里英语培训机构
阿克苏英语培训机构
阿勒泰英语培训机构
北京英语培训机构
蚌埠英语培训机构
亳州英语培训机构
白银英语培训机构
北海英语培训机构
百色英语培训机构
毕节英语培训机构
保定英语培训机构
白山英语培训机构
白城英语培训机构
本溪英语培训机构
包头英语培训机构
巴彦淖尔英语培训机构
滨州英语培训机构
宝鸡英语培训机构
巴中英语培训机构
巴音郭楞英语培训机构
博尔塔拉英语培训机构
保山英语培训机构
重庆英语培训机构
潮州英语培训机构
滁州英语培训机构
巢湖英语培训机构
池州英语培训机构
崇左英语培训机构
沧州英语培训机构
承德英语培训机构
长沙英语培训机构
常德英语培训机构
郴州英语培训机构
长春英语培训机构
常州英语培训机构
朝阳英语培训机构
赤峰英语培训机构
长治英语培训机构
成都英语培训机构
昌都英语培训机构
昌吉英语培训机构
楚雄英语培训机构
东莞英语培训机构
定西英语培训机构
大庆英语培训机构
大兴安岭英语培训机构
大连英语培训机构
丹东英语培训机构
东营英语培训机构
德州英语培训机构
大同英语培训机构
德阳英语培训机构
达州英语培训机构
大理英语培训机构
德宏英语培训机构
迪庆英语培训机构
鄂州英语培训机构
恩施英语培训机构
鄂尔多斯英语培训机构
佛山英语培训机构
阜阳英语培训机构
福州英语培训机构
防城港英语培训机构
抚州英语培训机构
抚顺英语培训机构
阜新英语培训机构
广州英语培训机构
甘南英语培训机构
桂林英语培训机构
贵港英语培训机构
贵阳英语培训机构
赣州英语培训机构
固原英语培训机构
果洛英语培训机构
广安英语培训机构
广元英语培训机构
甘孜英语培训机构
惠州英语培训机构
河源英语培训机构
杭州英语培训机构
湖州英语培训机构
合肥英语培训机构
淮南英语培训机构
鹤壁英语培训机构
黄山英语培训机构
河池英语培训机构
贺州英语培训机构
海口英语培训机构
邯郸英语培训机构
衡水英语培训机构
哈尔滨英语培训机构
鹤岗英语培训机构
黑河英语培训机构
黄石英语培训机构
黄冈英语培训机构
衡阳英语培训机构
怀化英语培训机构
淮安英语培训机构
葫芦岛英语培训机构
呼和浩特英语培训机构
呼伦贝尔英语培训机构
海东英语培训机构
海北英语培训机构
黄南英语培训机构
海西英语培训机构
菏泽英语培训机构
汉中英语培训机构
哈密英语培训机构
和田英语培训机构
红河英语培训机构
荆门英语培训机构
揭阳英语培训机构
嘉兴英语培训机构
金华英语培训机构
嘉峪关英语培训机构
金昌英语培训机构
酒泉英语培训机构
焦作英语培训机构
鸡西英语培训机构
佳木斯英语培训机构
荆州英语培训机构
吉林英语培训机构
景德镇英语培训机构
九江英语培训机构
吉安英语培训机构
锦州英语培训机构
济南英语培训机构
济宁英语培训机构
晋城英语培训机构
晋中英语培训机构
开封英语培训机构
克拉玛依英语培训机构
喀什英语培训机构
昆明英语培训机构
丽水英语培训机构
六安英语培训机构
洛阳英语培训机构
兰州英语培训机构
陇南英语培训机构
临夏英语培训机构
柳州英语培训机构
来宾英语培训机构
六盘水英语培训机构
廊坊英语培训机构
漯河英语培训机构
娄底英语培训机构
辽源英语培训机构
连云港英语培训机构
辽阳英语培训机构
莱芜英语培训机构
临沂英语培训机构
聊城英语培训机构
临汾英语培训机构
吕梁英语培训机构
泸州英语培训机构
乐山英语培训机构
凉山英语培训机构
拉萨英语培训机构
林芝英语培训机构
丽江英语培训机构
临沧英语培训机构
茂名英语培训机构
梅州英语培训机构
马鞍山英语培训机构
牡丹江英语培训机构
绵阳英语培训机构
眉山英语培训机构
宁波英语培训机构
南平英语培训机构
宁德英语培训机构
南宁英语培训机构
南阳英语培训机构
南京英语培训机构
南通英语培训机构
南昌英语培训机构
南充英语培训机构
内江英语培训机构
那曲英语培训机构
怒江英语培训机构
莆田英语培训机构
平凉英语培训机构
濮阳英语培训机构
平顶山英语培训机构
萍乡英语培训机构
盘锦英语培训机构
攀枝花英语培训机构
清远英语培训机构
钦州英语培训机构
庆阳英语培训机构
黔南英语培训机构
黔东南英语培训机构
黔西南英语培训机构
迁安英语培训机构
秦皇岛英语培训机构
齐齐哈尔英语培训机构
七台河英语培训机构
青岛英语培训机构
曲靖英语培训机构
日照英语培训机构
日喀则英语培训机构
上海英语培训机构
深圳英语培训机构
汕头英语培训机构
韶关英语培训机构
汕尾英语培训机构
绍兴英语培训机构
宿州英语培训机构
三明英语培训机构
三亚英语培训机构
石家庄英语培训机构
三门峡英语培训机构
商丘英语培训机构
双鸭山英语培训机构
绥化英语培训机构
十堰英语培训机构
随州英语培训机构
邵阳英语培训机构
四平英语培训机构
松原英语培训机构
苏州英语培训机构
宿迁英语培训机构
上饶英语培训机构
沈阳英语培训机构
石嘴山英语培训机构
朔州英语培训机构
商洛英语培训机构
遂宁英语培训机构
山南英语培训机构
石河子英语培训机构
天津英语培训机构
台州英语培训机构
铜陵英语培训机构
天水英语培训机构
铜仁英语培训机构
唐山英语培训机构
通化英语培训机构
泰州英语培训机构
铁岭英语培训机构
通辽英语培训机构
泰安英语培训机构
太原英语培训机构
铜川英语培训机构
吐鲁番英语培训机构
塔城英语培训机构
温州英语培训机构
芜湖英语培训机构
武威英语培训机构
梧州英语培训机构
武汉英语培训机构
无锡英语培训机构
乌海英语培训机构
乌兰察布英语培训机构
吴忠英语培训机构
潍坊英语培训机构
威海英语培训机构
渭南英语培训机构
乌鲁木齐英语培训机构
文山英语培训机构
宣城英语培训机构
厦门英语培训机构
邢台英语培训机构
信阳英语培训机构
新乡英语培训机构
许昌英语培训机构
襄樊英语培训机构
咸宁英语培训机构
孝感英语培训机构
湘潭英语培训机构
湘西英语培训机构
徐州英语培训机构
新余英语培训机构
兴安盟英语培训机构
锡林郭勒英语培训机构
西宁英语培训机构
忻州英语培训机构
西安英语培训机构
咸阳英语培训机构
西双版纳英语培训机构
阳江英语培训机构
云浮英语培训机构
义乌英语培训机构
玉林英语培训机构
伊春英语培训机构
宜昌英语培训机构
岳阳英语培训机构
益阳英语培训机构
永州英语培训机构
延边英语培训机构
扬州英语培训机构
盐城英语培训机构
鹰潭英语培训机构
宜春英语培训机构
营口英语培训机构
银川英语培训机构
玉树英语培训机构
烟台英语培训机构
阳泉英语培训机构
运城英语培训机构
延安英语培训机构
榆林英语培训机构
宜宾英语培训机构
雅安英语培训机构
伊犁英语培训机构
玉溪英语培训机构
珠海英语培训机构
湛江英语培训机构
肇庆英语培训机构
中山英语培训机构
舟山英语培训机构
漳州英语培训机构
张掖英语培训机构
资阳英语培训机构
张家口英语培训机构
郑州英语培训机构
驻马店英语培训机构
周口英语培训机构
株洲英语培训机构
张家界英语培训机构
镇江英语培训机构
中卫英语培训机构
淄博英语培训机构
枣庄英语培训机构
自贡英语培训机构
昭通英语培训机构
英语培训机构
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息