手机版

08Linux代理服务器(7)

发布时间:2021-06-07   来源:未知    
字号:

Linux代理服务器

以是3 2,默认设置为5个。注意,如果任意地降低该值,可能会使系统性能急剧降低,因为s quid主进程要等待域名查询的结果。没有必要减少该值,因为D NS查询进程并不会消耗太多的系统的资源。

(5) dns_nameservers

指定一个D NS服务器列表,强制s quid使用该列表中的D NS服务器而非使用/ etc/resolv. conf文件中定义的D NS服务器。可以这样指定多个D NS服务器:dns_nameservers 10.0.0.1 192.172.0.4

默认设置为:dns_nameservers none(6) unlinkd_program

指定文件删除进程的完整路径。

默认设置为:unlinkd_program /usr/lib/squid/unlinkd(7) pinger_program

指定p ing进程的完整路径。该进程被s quid利用来测量与其他邻居的路由距离。该选项只在启用了该功能时有用。默认为:

pinger_program /usr/lib/squid/pinger

(8) authenticate_program

指定用来进行用户认证的外部程序的完整路径。s quid的用户认证功能将在后面讲述。默认设置为不认证。

8. 用户访问控制选项(1) request_size (KB)

设置用户请求通信量的最大允许值(单位为K B)。如果用户用P OST方法请求时,应该设一个较大的值。默认设置为:

request_size 100 KB

(2) reference_age

s quid根据对象的L RU(最近最少使用算法)来清除对象,s quid依据使用磁盘空间的总量动态地计算对象的L RU年龄。我们用r eference_age定义对象的最大L RU年龄。如果一个对象在指定的r eference_age内没有被访问,s quid将删除该对象。默认值为一个月。可以使用如下所示的时间表示方法。

1 week3.5 days4 months2.2 hours

(3) quick_abort_min( KB)

quick_abort_maxquick_abort_pct

(KB)

(percent)

控制s quid是否继续传输被用户中断的请求。当用户中断请求时,s quid将检测quick_abort 的值。如果剩余部分小于q uick_abort_min指定的值,squid 将继续完成剩余部分的传输;如果剩余部分大于q u i c k _ a b o r t _ m a x指定的值,squid 将终止剩余部分的传输;如果已完成

Linux代理服务器

“q uick_abort_pct"指定的百分比,s quid将继续完成剩余部分的传输。默认的设置为:

quick_abort_min 16 KBquick_abort_max 16 KBquick_abort_pct 95

6. 各类超时设置选项(1) negative_ttl time-units

设置消极存储对象的生存时间。所谓的消极存储对象,就是诸如“连接失败”及F ound等一类错误信息。默认设置为:negative_ttl 5 minutes。

(2) positive_dns_ttlt ime-units

设置缓存成功的D NS查询结果的生存时间。默认为6小时。

positive_dns_ttl 6 hours

404 Not

(3) negative_dns_ttlt ime-units

设置缓存失败的D NS查询结果的生存时间。默认为5 min。

negative_dns_ttl 5 minutes

(4) connect_timeout time-units

说明:设置s quid等待连接完成的超时值。默认值为2 min。

connect_timeout 120 seconds

(5) read_timeout time-units

如果在指定的时间内s quid尚未从被请求的服务器读入任何数据,则s quid将终止该客户请求。默认值为1 5min。

read_timeout 15 minutes

(6) request_timeout

设置在建立与客户的连接后,s quid将花多长时间等待客户发出H TTP请求。默认值为3 0s。

request_timeout 30 seconds

(7) client_lifetime time-units

设置客户在与s quid建立连接后,可以将该连接保持多长时间。

注意,因为客户建立的每个连接都会消耗一定的系统资源,所以如果是为一个大型网络提供代理服务的话,一定要正确地修改该值。因为如果同一时间的连接数量太大的话,可能会消耗大量的系统资源,从而导致服务器宕机。默认值为1天,该值太大了,建议根据自己的情况适当减小该值。

client_lifetime 1 day

(8) half_closed_clients on/off

有时候由于用户的不正常操作,可能会使与s quid的T CP连接处于半关闭状态,这时候,该T CP连接的发送端已经关闭,而接收端正常工作。默认时,s quid将一直保持这种处于半关闭状态的T CP连接,直到返回套接字的读写错误才将其关闭。如果将该值设为o ff,则一旦从客户端返回“no more data to read”的信息,s quid就立即关闭该连接。half_closed_clients on

Linux代理服务器

(9) pconn_timeout

设置s quid在与其他服务器和代理建立连接后,该连接闲置多长时间后被关闭。默认值为1 20秒。

pconn_timeout 120 seconds

(10) ident_timeout

设置s quid等待用户认证请求的时间。默认值为1 0s。

i dent_timeout 10 seconds

( 11) shutdown_lifetime time-units

当收到SIGTERM 或者SIGHUP 信号后, squid将进入一种shutdown pending的模式,等待所有活动的套接字关闭。在过了s hutdown_lifetime所定义的时间后,所有活动的用户都将收到一个超时信息。默认值为3 0s。

shutdown_lifetime 30 seconds

7. 管理参数选项(1) cache_mgr

设置管理员邮件地址。默认为:

cache_mgr root

(2) cache_eff ective_user

cache_effective_group

如果用r oot启动s quid,s quid将变成这两条语句指定的用户和用户组。默认变为s quid用户和s quid用户组。注意这里指定的用户和用户组必须真是存在于/ etc/passwd中。如果用非r oot账号启动s quid,则s quid将保持该用户及用户组运行,这时候,不能指定小于1 024的h ttp_port。

cache_effective_user squidcache_effective_group squid

(3) visible_hostname

定义在返回给用户的出错信息中的主机名。如: visible_hostname (4) unique_hostname

如果你有一个代理服务器阵列,并且为每个代理服务器指定了同样的“v isible_hostname",则你必须同时为它们指定不同的“u nique_hostname”来避免“forwarding loops”(传输循环)发生。

8. 其他杂项(1) dns_testnames

设置进行D NS查询测试,如果第一个站点解析成功,则立即结束D NS查询测试。如果不愿意进行D NS查询测试,就不要去掉默认的设置。

#dns_testnames

(2) logfile_rotate

Linux代理服务器

通常,s quid会定期的将日志文件更名并打包。比如正在使用的日志文件为a ccess.log,squid会将其更名并打包为a c c e s s . l o g . 1 . g z;过了一定时间后,s q u i d又会将a c c e s s . l o g . 1 . g z更名为a ccess.log.2.gz并将当前的日志文件更名并打包为a ccess.log.1.gz,以此循环。l ogfile_rotate指定的数字即为打包并备份的文件的数量,当达到这一数目时,s quid将删除最老的备份文件。默认值为1 0。如果想手动来进行这些操作,可以用logfile_rotate 0来取消自动操作。

(3) err_html_text

用该语句定义一个字符串变量,可以用%L在返回给用户的错误信息文件中引用。错误信息文件通常在/ etc/squid/errors目录中,这是一些用H TML写成的脚本文件,可以自己修改它。

(4) deny_info

可以定制自定义的拒绝访问信息文件,和不同的用户列表相关联。当用户被h ttp_access相关规则拒绝时,s quid可以向用户显示你自定义的相应的拒绝访问信息文件。语法为:

Usage: deny_info err_page_name acl

比如:

deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys

(5) memory_pools on|off

如果将该项设为o n,则s quid将保留所有已经分配(但是未使用)的内存池以便在将来使用。默认为o n.

memory_pools on

(6) log_icp_queries on|off

设置是否对I CP请求作日志。如果系统负载很大,可以用o ff来取消该功能。默认为:

log_icp_queries on

(7) always_direct

该选项允许指定某些用户类,s quid将这些用户类的请求直接转发给被请求的服务器。语法为:

always_direct allow|deny [!]aclname ...

如:直接转发F TP请求可以这样设置:

acl FTP proto FTPalways_direct allow FTP

(8) never_direct

与a lways_direct相反。语法为:

Usage: never_direct allow|deny [!]aclname ...

比如,为了强制除了本地域的其他用户使用代理服务器,可以这样设置:

acl local-servers dstdomain acl all src 0.0.0.0/0.0.0.0never_direct deny local-serversnever_direct allow all

Linux代理服务器

(9) icon_directory

指明向用户传送错误信息时所用到的图标文件的目录。默认路径为:

icon_directory /usr/lib/squid/icons

(10) error_directory

向用户传送错误信息所用到的错误描述文件的目录。默认路径为:

error_directory /etc/squid/errors

8.5.2 用户认证设置

默认时,s quid本身不带任何认证程序,但是我们可以通过外部认证程序来实现用户认证。一般说来有以下的认证程序:

LDAP认证:可以访问以下资源来获取更多的有用信息。

/ResearchTriangle/Thinktank/5292/projects/ldap/http://home.iae.nl/users/devet/squid/proxy_auth/contrib/ldap_auth.tar.gz

SMB认证:可以实现基于N T和s amba的用户认证。更多的信息请访问以下资源。

http://www.hacom.nl/~richard/software/smb_auth.html

基于m ysql的用户认证。

http://home.iae.nl/users/devet/squid/proxy_auth/contrib/mysql_auth.c

基于s ock5密码用户认证。

/

基于Radius 的用户认证。

http://home.iae.nl/users/devet/squid/proxy_auth/contrib/auth.pl

但是我们一般常用的是用n csa实现的认证和用s mb_auth实现的基于N T和s amba的用户认证。下面我们就来讲这两种认证方法的具体实现。

1. ncsa用户认证的实现

n csa是s quid源代码包自带的认证程序之一,下面我们以s quid-2.3.STA BLE2版本为例讲述n csa的安装和配置。

1) 从w ww. 下载s quid源代码包s quid-2.3.STA BLE2-src.tar. gz并放到/ tmp目录下。

2) 用t ar解开:

tar xvzf squid-2.3.STABLE2-src.tar.gz %make

%make install

3) 然后,进入/ tmp/squid-2.3.STA BLE2/auth_modules/NCSA目录。

% make

% make install

编译成功后,会生成n csa_auth的可执行文件。4) 拷贝生成的执行文件n csa_auth到/ usr/bin目录

08Linux代理服务器(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)