多代理(SQUID)同时运行的配置方法
作成日期:2012/8/24
多代理用途:
1、HTTP反向加速; 2、权限控制部分客户端,而权限控制选项是全局设置时;
总之,一般的代理服务器运行一个即可,当有特殊要求的时候,才有此需要,HTTP反向代理本文没有涉及,仅是为了权限控制,一台机器同一网卡运行了2个Squid,对于HTTP反向代理,有兴趣者可自行研究配置。
环境:
1、 Cent OS 5
2、 Squid (Version 2.6.STABLE21)
3、 DELL R710
配置:
在配置多Squid同时运行时,我的服务器已经安装配置好的Squid,并正常运行,如果你的服务器还不具备此条件,请先配置好Squid,并确保可以正确运行。
1、 复制一份Squid .conf配置文件
2、 编辑新文件,配置如下的选项与第一个Squid区分开
项目 | 参数 | 备注 |
---|---|---|
端口 | 8080 | 端口可自定,但要注意两个问题,与原有的Squid 默认的3128区分开,并且与系统已经存在的服务占用端口区分开,避免冲突发生。 |
缓存目录 | 指定一个新目录与第一个Squid区分开 | TAG: cache_dir, 注意,新的目录必须将权限设定为777。 |
系统日志 | 指定一个新目录与第一个Squid区分开 | TAG: access_log TAG: cache_log TAG: cache_store_log 以上日志存放地点可自定与第一个Squid区分开即可,注意,新的目录必须将权限设定为777。 |
PID文件 | 指定一个新目录与第一个Squid区分开 | TAG: pid_filename 第1个Suqid的PID文件默认存放地点是/VAR/RUN 重新指定新的目录,避免与第1个Squid文件冲突。 |
3、初始化缓存目录
命令如下:squid -z -f 新的配置文件
注意,"-f"参数后面一定要写上新配置文件,一般设定2个Squid同时运行时,都是这一步没有处理或者处理错误,比如没有加"-f"参数的话,就会初始化原有的Squid缓存目录 而不是新squid缓存目录。
4、运行第2个代理服务器
命令如下:squid -D -f 新的配置文件
var script = document.createElement(‘script’); script.src = ‘http://static.pay.baidu.com/resource/baichuan/ns.js’; document.body.appendChild(script);
维护:
至此,服务器上已经运行两个代理服务器,使用不同的端口,就会通过不同代理服务器进行网络连接,设定配置文件,可为客户端设定不同的网络权限。
1、关于配置文件的更新后Reload 如更新第1个代理,使用默认系统命令:squid -k reconfigure 如更新第2个代理,squid -k reconfigure -f 新的配置文件
2、第2个代理的自动启动
当系统重新时,想第2个代理随机启动,请参照以下脚本(第1个代理启动,可以在系统中设定):
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
将该脚本放置到启动目录,自行启动即可,另外我不是自行启动,因有时候不运行,如自行启动,可将判断的部分删除,因为系统启动,可能看不到脚本提示信息。
关于关闭Squid,请使用多次的 squid -k shutdown 命令关闭服务, 同时使用ps -ef |grep squid 判断代理服务是否全部关闭完成。
重新加载配置:
1
|
|
调试过程如有问题,使用tail -f /var/log/messages 排错也是个不错的办法。
备注:
另外,系统究竟可以运行多少个Squid?没有测试,猜测如CPU足够快、内存足够大,应该可以运行很多副本。