2、修改selinux设置
setsebool -P squid_disable_trans on
注意:
如果配置squid透明代理,要开启selinux的squid_disable_trans,否则squid不能启动哈~
3、添加squid系统用户和组
[root@rhel5 ~]#
groupadd squidadmin
[root@rhel5 ~]#
useradd squidadmin -g squidadmin -s /sbin/nologin
4、建立相应目录
[root@rhel5 ~]#
mkdir /usr/local/squid
[root@rhel5 ~]#
mkdir /usr/local/squid/cache
[root@rhel5 ~]#
mkdir /usr/local/squid/var
[root@rhel5 ~]#
mkdir /usr/local/squid/var/logs
5、改变目录的所有者
为了保证服务正常启动并可以写入缓存、日志等信息,我们更改目录所有者为squidadmin哈~
[root@rhel5 ~]#
chown -R squidadmin /usr/local/squid/cache
[root@rhel5 ~]#
chgrp -R squidadmin /usr/local/squid/cache
[root@rhel5 ~]#
chown -R squidadmin /usr/local/squid/var/logs
[root@rhel5 ~]#
chgrp -R squidadmin /usr/local/squid/var/logs
6、修改squid配置文件
vim /etc/squid/squid.conf
设置监听地址和端口
http_port 3128 transparent
红色部分是支持透明代理,这是squid新版本的改进
注意:
好多资料说透明代理设置为
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
实际上透明代理只是在普通代理的基础上加上了http_port 3128 transparent及IPTABLES的端口转发功能,使用Iptables或者Ipchains实现,即把用户对外部www站点的访问转到Squid的端口上去,相对用用户来讲是“透明”的,不需在浏览器中指明代理服务器的IP和端口。
而对于反向代理来说,从squid2.6开始squid.conf已经没有httpd_accel字段了哈~Squid 2.6与3.0一样哈~相对于2.5的accel模式下配置要简单许多,只要设置不同的后端,cache_peer parent originserver就可以进行反向代理,而不再需要httpd_accel系列参数的配置.配置squid时最好制定内部dns,或者修改/etc/hosts文件,否则squid可能会回环访问其自身而出现问题哈~
udp_incoming_address 0.0.0.0
设置squid内存大小及cahce目录
cache_mem 512 MB
cache_dir ufs /usr/local/squid/cache 10240 16 256
设置日志文件和pid文件位置
access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
cache_store_log none
emulate_httpd_log on
使Squid按照Web服务器的格式创建访问记录,Web访问记录分析程序,就需要设置这个参数
pid_filename /usr/local/squid/var/logs/squid.pid
配置访问控制
acl all src 0.0.0.0/0.0.0.0
acl mynet src 192.168.8.0/255.255.255.0
http_access allow mynet
http_access deny all
设置运行时的用户和组权限
设置squid进程所有者
cache_effective_user squidadmin
设置squid进程所属组
cache_effective_group squidadmin
设置管理信息
设置squid可见主机名
visible_hostname 192.168.8.188
swap性能微调
half_closed_clients off
cache_swap_low 80
cache_swap_high 100
maximum_object_size 1024 KB
squid配置逻辑是自上而下,满足条件即不再和下面匹配。
7、检查squid.conf配置文件
当更改过配置文件后最好验证一下配置文件:
squid -k parse
8、squid服务初始化
在第一次启动squid服务之前,一定要使用squid -z命令来使squid在硬盘缓存中建立cache目录,或者重新设置了cache_dir字段的值之后也要使用此命令来重新建立硬盘缓存目录哈~
如果我们要观察此过程,我们可以加个-X参数哈~
squid -zX
注意:在cache目录激活后永远不要改变L1和L2的值哈~
9、启动squid服务
service squid start
10、测试
squid -D检查squid服务有没启动
客户端只要设置IP地址、子网掩码、网关及DNS就可以直接上网了哈~
测试http网站
测试https网站
测试邮箱网站
[url]http://ipid.shat.net/[/url],检测你的代理是否成功哈~~~
tail /usr/local/squid/var/logs/access.log
我们会发现访问的记录都在access.log中哈~~~
cat /usr/local/squid/var/logs/cache.log
此外我们还可以使用acl和http_access deny组合来禁止指定IP、指定网段、屏蔽访问指定网站及指定固定时间上网等等哈~~~
#################Michael分割线#######################