Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10706816
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-03-23 11:09:30

1.http_port
   定义squid监听HTTP客户连接请求的端口。缺省是3128,如果使用HTTPD加速模式则为80。可以指定 多个端口,但是所有指定的端口都必须在一条命令行上。
 2.cache_mem
    指定squid可以使用的内存理想值,建议设为内存的1/3.
 3.cache_dir Directory-Name Mbytes Level1 Level2
 指定squid用来存储对象的交换空间的大小及其目录结构。可以用下面的公式来估算系统所需要的    子目录数目。
已知量:
 DS = 可用交换空间总量(单位KB)/ 交换空间数目
 OS = 平均每个对象的大小= 20k
 NO = 平均每个二级子目录所存储的对象数目 = 256
未知量:
 L1 = 一级子目录的数量
 L2 = 二级子目录的数量
计算公式:
 L1 x L2 = DS / OS / NO
注意这是个不定方程,可以有多个解。
 4.maximum_object_size
   大于该值得对象将不被存储。如果要提高访问速度,就降低该值;如果想最大限度的节约带宽,降低成本,就增加该值。
 5.dns_nameservers
   定义Squid进行域名解析时使用的域名服务器。
 6.acl
   定义访问控制列表。定义语法为:
   acl aclname acltype string ...
   acl aclname acltype "file" ...
 7.http_access
  根据某个访问控制列表允许或禁止某一类用户访问。
  运行Squid
配置并保存好squid.conf后,就可以启动、停止和重新启动Squid:
  /etc/rc.d/init.d/squid start
  /etc/rc.d/init.d/squid stop
  /etc/rc.d/init.d/squid restart
可以通过ps命令查看Squid服务是否已经正常启动:
 ps -A |grep squid
如果出现以下信息:
 6573 ? 00:00:00 squid
 6574 ? 00:00:00 squid
 则表明Squid服务已经正常启动。
 客户端的配置
  将某台终端设置成内部地址,并将该终端的DNS服务器设置为代理服务器的DNS服务,在内部地址和标准地址之间作一个路由。在浏览器里设置代理服务器地址为Squid代理服务器的地址,就可以通过代理服务器上网了。
 一个实例
 假设有这样的应用环境,网络中有一台拨号服务器为用户提供拨号接入服务,且运行有Squid实现的代理服务器,其IP地址为192.168.2.32。拨号用户得到一个内部IP,地址范围为192.168.2.1-   192.168.2.30。
 1.配置squid.conf
   http_port 80
   cache_mem 32 MB
   cache_swap_low 90
   cache_swap_high 95
   maximum_object_size 4096 KB
   cache_dir /var/spool/squid 100 16 256
   cache_access_log /var/log/squid/access.log
   cache_log /var/log/squid/cache.log
   cache_store_log /var/log/squid/store.log
   cache_dns_program /usr/lib/squid/dnsserver
   dns_nameservers 192.168.2.32
   unlinkd_program /usr/lib/squid/unlinkd
   acl all src 0.0.0.0/0.0.0.0
   acl allow_ip src 192.168.2.1/255.255.255.0
   acl manager proto cache_object
   acl localhost src 192.168.2.32/255.255.255.255
   acl SSL_ports port 443 563
   acl Safe_ports port 80 21 443 563 70 210 1025-65535
   acl CONNECT method CONNECT
   http_access allow manager localhost
   http_access deny manager
   http_access deny !Safe_ports
   http_access deny CONNECT !SSL_ports
   http_access allow localhost
   http_access allow allow_ip
   cache_effective_user squid
   cache_effective_group squid
下面两个选项是用来定义squid加速模式的。用virtual来指定为虚拟主机模式。80端口为要加速的请求端口。采用这种模式时,Squid就取消了缓存及ICP功能,假如需要这些功能,必须设置  httpd_accel_with_proxy选项。
  httpd_accel_host virtual
  httpd_accel_port 80
下面两个选项在透明代理模式下是必须设置成on的。在该模式下,Squid既是web请求的加速器,又是缓存代理服务器。
  httpd_accel_with_proxy on
  httpd_accel_uses_host_header on
设置透明代理时,必须打开包转发功能,还要结合ipchains:
  echo 1 > /proc/sys/net/ipv4/ip_forward
  /sbin/ipchains -A input -j ACCEPT -i lo
  /sbin/ipchains -A forward -s 192.168.2.1/24 -d 0/0 -j MASQ
 2.用户认证设置
 默认时,Squid本身不带任何认证程序,但是可以通过外部认证程序来实现用户认证。一般有以下的认证程序:LDAP认证、SMB认证、基于mysql 的认证、基于sock5的密码认证和基于Radius的认证。下面介绍常用的ncsa实现的认证,ncsa是Squid源代码包自带的认证程序之一,实现步骤如下:
进入/usr/local/squid/auth_modules/NCSA目录,执行:
  make
  make install
 编译成功后,会生成ncsa_auth的可执行文件,拷贝生成的可执行文件到/usr/bin目录下。
 修改squid.conf文件的相关选项。
  acl auth_user proxy_auth REQUIRED
  http_access allow auth_user
  authenticate_program /usr/local/squid/bin/ncsa_auth
  /usr/local/squid/etc/passwd
 利用Apache携带的工具软件htpasswd在/usr/locad/squid/etc下生成密码文件,并添加相应的用户信息。该密码文件每行包含一个用户的信息,即用户名和密码。例如,用htpasswd生成密码文件passwd并添加用户me:
  htpasswd -c /usr/local/squid/etc/passwd me
 重新启动Squid,密码认证生效。
 3.客户端的设置
  在客户端浏览器的选项中将代理服务器的IP地址设为192.168.2.32,http端口为80。若要设置透明代理,则客户端不需要在浏览器中指定代理服务器,而将网关设为192.168.2.32,并且客户端要配置好DNS。
阅读(819) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~