squid 几个常用的选项
时间:2009-03-23 来源:sjhf
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。 |
相关阅读 更多 +