免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2410 | 回复: 3
打印 上一主题 下一主题

[proxy] 用squid做简单的web 代理服务器 [复制链接]

论坛徽章:
1
丑牛
日期:2014-05-22 15:38:58
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-17 10:03 |只看该作者 |倒序浏览
本人是第一次配置squid,写个配置过程以备以后查询,相信肯定有很多的问题存在,希望各位高手及时指出,以便于改正!另外个人感觉配置的功能还是非常单一,只是简单的访问网站而已。新手可以参考一下,高手就免了

同时也希望大家多多交流,希望能够从大家身上学习到更多知识,谢谢!

特别推荐以下地址,有问题的时候可以去看看,虽然是英文的,但个人感觉内容很丰富,也很详细。

http://www.visolve.com/squid/squid24s1/contents.htm



目的:配置简单的proxy server,实现从client能够通过proxy server访问网页即可

环境:本次安装测试环境都在虚拟机下实现
Proxy Server: Redflag Server 4.1  eth0(可上internet):172.17.196.10,eth1:192.168.0.1(连接client)
Client            : Redhat 9.0    eth0:192.168.0.2

配置参考:http://squid.visolve.com/squid/sqguide.htm

一、Proxy Server/Client 配置

1、默认只安装了一块网卡eth0,可以上internet,为实验需要另外增加网卡eth1
#cd /etc/sysconfig/network-scripts
#cp ifcfg-eth0 ifcfg-eth1 (配置连接client的IP,并更改相关的设备名和配置)
(由于使用系统默认的安装后配置出现问题,察看n多资料也搞不定,无奈后来采用手动安装)

2、下载squid 2.5并编译
访问 http://www.squid-cache.org/ 下载 squid2.5,文件名:squid-2.5.STABLE13.tar
tar -xvf squid*
cd squid*
./configure
make
make install
(默认安装在/usr/local/squid)

3、基本配置
#vi /usr/local/squid/etc/squid.conf
找到 cache_dir,http_port,http_access,cache_effective_user & cache_effective_ group
去掉cache_dir,http_port,http_reply_access allow all前面的#号
把#cache_effective_user nobody改成cache_effective_user squid
#cd /usr/local/squid/var
#mkdir cache
#chown squid:squid cache  (默认所有者和组是root,不改在后面的配置过程中将出现错误,下同)
#chown squid:squid logs   (同上)

4、启动squid (下面过程配置的时候问题最多 )
#/usr/local/squid/sbin/squid -z
#/usr/local/squid/sbin/squid -NCd1 (后面是数字1哦!)
如果没问题的话将显示:"Ready to serve requests".
#/usr/local/squid/sbin/squid

5、配置Client端
#vi /etc/resolve.conf 加入ISP的DNS地址
nameserver 202.101.172.35
#vi /etc/sysconfig/network
GATEWAY=172.17.196.254 配置网关

OK,到现在为止如果没有错误的话就基本上已经配置完成了!下面可以测试了!

1、在client机器上打开Mozilla Firefox,将代理服务器地址(192.168.0.1)和端口(312填写后输入网址测试,如果能正常打开网页就已经OK了!

2、在Proxy Server 察看日志是否有纪录:
#more /usr/local/squid/var/logs/access.log

1142505973.961   6305 192.168.0.2 TCP_MISS/302 647 GET http://www.google.com/ -
DIRECT/64.233.189.104 text/html
1142505974.317    344 192.168.0.2 TCP_MISS/200 1829 GET http://www.google.com/in
tl/zh-CN/ - DIRECT/64.233.189.104 text/html
1142505974.517    100 192.168.0.2 TCP_MISS/200 4550 GET http://www.google.com/in
tl/zh-CN/images/hp0.gif - DIRECT/64.233.189.104 image/gif
1142505974.577    159 192.168.0.2 TCP_MISS/200 2975 GET http://www.google.com/in
tl/zh-CN/images/hp2.gif - DIRECT/64.233.189.104 image/gif
1142505974.707    289 192.168.0.2 TCP_MISS/200 1683 GET http://www.google.com/in
tl/zh-CN/images/hp3.gif - DIRECT/64.233.189.104 image/gif
1142505974.793    374 192.168.0.2 TCP_MISS/200 3226 GET http://www.google.com/in
tl/zh-CN/images/hp1.gif - DIRECT/64.233.189.104 image/gif
1142506523.020   8204 192.168.0.2 TCP_MISS/200 16931 GET http://www.linux.org/

二、配置过程中碰到的问题:

1.FATAL: Could not determine fully qualified hostname.  Please set 'visible_hostname'
运行#/usr/local/squid/sbin/squid -z的时候提示下列错误:

FATAL: Could not determine fully qualified hostname.  Please set 'visible_hostname'

Squid Cache (Version 2.5.STABLE13): Terminated abnormally.
CPU Usage: 0.040 seconds = 0.000 user + 0.040 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 279
已放弃

解决:增加fully qualified hostname,有好多种办法,我的是vi /etc/hosts, 增加192.168.0.1 test.redflag.com,也可以运行
'visible_hostname'  定义一个hostname,或者直接编辑squid.conf增加visible_hostname。

2.FATAL: Failed to make swap directory /usr/local/squid/var/cache: (13) Permission denied
运行:# /usr/local/squid/sbin/squid -z后提示:

2006/03/16 17:28:48| Creating Swap Directories
FATAL: Failed to make swap directory /usr/local/squid/var/cache: (13) Permission denied
Squid Cache (Version 2.5.STABLE13): Terminated abnormally.
CPU Usage: 0.010 seconds = 0.000 user + 0.010 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 9

解决:是由于没有创建cache目录的原因。
#mkdir /usr/local/squid/var/cache

3.WARNING: Cannot write log file: /usr/local/squid/var/logs/cache.log
/usr/local/squid/var/logs/cache.log: Permission denied

运行:# /usr/local/squid/sbin/squid -NCd1 后提示:
WARNING: Cannot write log file: /usr/local/squid/var/logs/cache.log
/usr/local/squid/var/logs/cache.log: Permission denied
         messages will be sent to 'stderr'.

解决:更改logs目录权限,设置成和cache一样,所有者和组都为squid

4.察看日志(1142505973.961   6305 192.168.0.2 TCP_MISS/302 647 GET http://www.google.com/ - DIRECT/64.233.189.104 text/html)的时候发现最前面一段"1142505973.961"不知道是什么意思?不知道能否改成具体的时间?这样就可以知道具体访问日期了!

3.怎样把squid 加到服务里,可以让它自动启动?现在运行service squid start不行,只能运行/usr/local/squid/sbin/suid

[ 本帖最后由 smallfish 于 2006-3-17 11:37 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-03-22 10:42 |只看该作者
日志里“TCP_MISS”是没有命中缓存的意思吧!

论坛徽章:
0
3 [报告]
发表于 2006-03-22 12:51 |只看该作者
现在有一个争论,就是要squid在apache前端做cache缓存,那apache是否一定做相应的设置。
如果要,好像就是设置 mod_cache和mod_expires 这两个模块
如果不要好像就是就在 squid/etc/squid.conf 里添加下面两行
refresh_pattern -i .htm               60       65%     4320     ignore-reload
refresh_pattern -i .html              60       65%     4320   ignore-reload

论坛徽章:
0
4 [报告]
发表于 2006-03-23 09:27 |只看该作者
关注中
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP