squid 编译参数说明

./configure脚本有大量的不同选项,它们以-开始。当你敲入./configure --help时,能看到选项的完整列表。一些选项对所有configure脚本是通用的,还有一些是squid专有的。下面是你可能用得到的标准选项:

--perfix =PREFIX

如前面描述的一样,这里设置安装目录。安装目录是所有可执行文件,日志,和配置文件的默认目录。在整本书中,$prefix指你选择的安装目录。

--localstatedir =DIR

该选项允许你改变var目录的安装位置。默认是$prefix/var,但也许你想改变它,以使squid的磁盘缓存和日志文件被存储在别的地方。

--sysconfdir =DIR

该选项允许你改变etc目录的位置。默认的是$prefix/etc.假如你想使用/usr作为安装位置,你也许该配置--sysconfdir为/etc.

以下是squid的专有./configure选项:

--enable-dlmalloc[=LIB]

在一些系统上,内建的内存分配机制(malloc)在使用squid时表现不尽人意。使用--enable-dlmalloc选项将squid源代码包中的dlmalloc包编译和链接进来。假如你的系统中已安装dlmalloc,你能使用=LIB参数指定库的路径。

--enable-gnuregex

在访问控制列表和其他配置指令里,squid使用正则表达式作为匹配机制。GNU的正则表达式库包含在squid的源代码包里;它可以在没有内建正则表达式的操作系统中使用。./configure脚本侦察你系统中的正则表达式库,假如必要,它可以激活使用GNU正则表达式。如果因为某些理由,你想强制使用GNU正则表达式,你可以将这个选项加到./configure命令后。

--enable-carp

Cache数组路由协议(CARP)用来转发丢失的cache到父cache的数组或cluster。在10.9章有更多关于CARP的细节。

--enable-async-io[=N_THREADS]

异步I/O是squid技术之一,用以提升存储性能。aufs模块使用大量的线程来执行磁盘I/O操作。该代码仅仅工作在linux和solaris系统中。=N_THREADS参数改变squid使用的线程数量。aufs和异步I/O在8.4章中被讨论。

请注意--enable-async-io是打开其他三个./configure选项的快捷方式,它等同于:

--with-aufs-threads=N_THREADS

--with-pthreads

--enable-storeio=ufs,aufs

--with-pthreads

该选项导致编译过程链接到你系统中的P线程库。aufs存储模块是squid中唯一需要使用线程的部分。通常来说,如果你使用--enable-saync-io选项,那么不必再单独指定该选项,因为它被自动激活了。

--enable-storeio=LIST

Squid支持大量的不同存储模块。通过使用该选项,你告诉squid编译时使用哪个模块。在squid-2.5中,支持ufs,aufs,diskd,和null模块。通过查询src/fs中的目录,你能得到一个模块列表。

LIST是一个以逗号分隔的模块列表,例如:

% ./configure --enable-storeio=afus,diskd,ufs

ufs模块是默认的,看起来问题最少。不幸的是,它性能有限。其他模块可能在某些操作系统中不必编译。关于squid存储模块的完整描述,

--with-aufs-threads=N_THREADS

指定aufs存储机制使用的线程数量(见8.4章)。squid默认根据缓存目录的数量,自动计算需要使用多少线程。

--enable-heap-replacement

该选项不再使用,但被保留用于向后兼容性。你该使用--enable-removal-policies来代替。

--enable-removal-policies=LIST

排除策略是squid需要腾出空间给新的cache目标时,用以排除旧目标的机制。squid-2.5支持3个排除策略:最少近期使用(LRU),贪婪对偶大小(GDS),最少经常使用(LFU)。

然而,因为一些理由,./configure选项使指定的替代策略和需要执行它们的基本数据结构之间的差别模糊化。LRU是默认的,它以双链表数据结构执行。GDS和LFU使用堆栈的数据结构。

为了使用GDS或LFU策略,你指定:

% ./configure --enable-removal-policies=heap

然后你在squid的配置文件里选择使用GDS或LFU。假如你想重新使用LRU,那么指定:

% ./configure --enable-removal-policies=heap,lru

--enable-icmp

如在10.5章中描述的一样,squid能利用ICMP消息来确定回环时间尺寸,非常象ping程序。你能使用该选项来激活这些功能。

--enable-delay-pools

延时池是squid用于传输形状或带宽限制的技术。该池由大量的客户端IP地址组成。当来自这些客户端的请求处于cache丢失状态,他们的响应可能被人工延迟。

--enable-useragent-log

该选项激活来自客户请求的HTTP用户代理头的日志。

--enable-referer-log

该选项激活来自客户请求的HTTP referer日志。

--disable-wccp

Web cache协调协议(WCCP)是CISCO的专有协议,用于阻止或分发HTTP请求到一个或多个caches。WCCP默认被激活,假如你愿意,可以使用该选项来禁止该功能。

--enable-snmp

简单网络管理协议(SNMP)是监视网络设备和服务器的流行方法。该选项导致编译过程去编译所有的SNMP相关的代码,包括一个裁切版本的CMU SNMP库。

--enable-cachemgr -hostname[=hostname]

cachemgr是一个CGI程序,你能使用它来管理查询squid。默认cachemgr的hostname值是空的,但你能使用该选项来指定一个默认值。例如:

% ./configure --enable-cachemgr-hostname=mycache.myorg.net

--enable-arp-acl

squid在一些操作系统中支持ARP,或者以太地址访问控制列表。该代码使用非标准的函数接口,来执行ARP访问控制列表,所以它默认被禁止。假如你在linux或solaris上使用squid,你可能用的上这个功能。

--enable-htcp

HTCP是超文本缓存协议--类似于ICP的内部缓存协议。

--enable-ssl

使用该选项赋予squid终止SSL/TLS连接的能力。注意这仅仅工作在web加速器中用以加速请求。

--with-openssl[=DIR]

假如必要,你使用该选项来告诉squid到哪里找到OpenSSL库或头文件。假如它们不在默认位置,在该选项后指定它们的父路径。例如:

% ./configure --enable-ssl --with-ssl=/opt/foo/openssl

在这个例子中,你的编译器将在/opt/foo/openssl/include目录中找头文件,在/opt/foo/openssl/lib中找库文件。

--enable-cache-digests

Cache消化是ICP的另一个替代,但有着截然不同的特性

--enable-err-languages="lang1 lang2 ..."

squid支持定制错误消息,错误消息可以用多种语言报告。该选项指定复制到安装目录($prefix/share/errors)的语言。假如你不使用该选项,所有可用语言被安装。想知道何种语言可用,请见源代码包里errors目录下的目录列表。如下显示如何激活多种语言:

% ./configure --enable-err-languages="Dutch German French" ...

--enable-default-err-language=lang

该选项设置error_directory指令的默认值。例如,假如你想使用荷兰语,你能这样指定:

% ./configure --enable-default-err-language=Dutch

你也能在squid.conf里指定error_directory指令,在附录A中有描述。假如你忽略该选项,英语是默认错误语言。

--with-coss-membuf-size=N

循环目录存储系统(coss)是squid的试验性存储机制。该选项设置coss缓存目录的内存缓冲大小。注意为了使用coss,你必须在--enable-storeio选项里指定存储类型。

该参数以字节形式赋值,默认是1048576字节或1M。你能指定2M缓冲如下:

% ./configure --with-coss-membuf-size=2097152

--enable-poll

unix提供两个相似的函数用以在I/O事件里扫描开放文件描述符:select()和poll()../configure脚本通常能非常好的计算出何时使用poll()来代替select().假如你想强制使用poll(),那么指定该选项。

--desable-poll

类似的,如果不使用poll(),那么指定该选项。

--disable-http-violations

squid默认可以被配置成违背HTTP协议规范。你能使用该选项来删除违背HTTP协议的代码。

--enable-ipf-transparent

在第9章中,我将描述如何配置squid来拦截缓存。一些操作系统使用IP Filter包来协助拦截缓存。在这些环境下你应该使用该./configure选项。如果你使用了该选项,但是编译器提示src/client_side.c文件出错,那是因为IP Filter包没有或没有正确的安装在你的系统中。

--enable-pf-transparent

你可能需要指定该选项,使用PF包过滤器在操作系统中拦截HTTP。PF是OpenBSD的标准包过滤器,也可能被发布到其他系统中。假如你使用该选项,但是编译器提示src/client_side.c文件出错,那是因为PF没有实际安装到你的系统中。

--enable-linux-netfilter

Netfilter是linux 2.4系列内核的包过滤器名字。假如你想在linux2.4或以后的版本中使用HTTP拦截功能,那么激活该选项。

--disable-ident-lookups

ident是一个简单的协议,允许服务器利用客户端的特殊TCP连接来发现用户名。假如你使用该选项,编译器将把执行这些查询的代码排除出去。即使你在编译时保留了这些代码,除非你在squid.conf文件里指定,squid不会执行ident查询。

--disable-internal-dns

squid源代码包含两个不同的DNS解决方案,叫做“内部的”和“外部的”。内部查询是默认的,但某些人可能要使用外部技术。该选项禁止内部功能,转向使用旧的方式。

内部查询使用 squid自己的DNS协议执行工具。也就是说,squid产生未完成的DNS查询并且将它们发送到一个解析器。假如超时,它重新发送请求,你能指定任意数量的解析器。该工具的有利处之一是,squid获得准确无误的DNS响应的TTLs。

外部查询利用C库的gethostbyname()和gethostbyaddr()函数。squid使用一个外部进程池来制造并行查询。使用外部DNS解析的主要弊端是你需要更多的辅助进程,增加squid的负载。另一个麻烦是C库函数不在响应里传输TTLs,这样squid使用postive_dns_ttl指令提供的一个常量值。

--enable-truncate

truncate()系统调用是unlink()的替代品。unlink()完全删除cache文件,truncate()将文件大小设为零。这样做释放了分配给该文件的磁盘空间,但留下适当的目录接口。该选项存在的理由是,某些人相信(或希望)truncate()比unlink()性能表现更好。然而,压力测试显示两者有很少的或根本没有区别。

--disable-hostname-checks

默认的,squid要求URL主机名在一定程度上遵守古老的RFC 1034规范:

标签必须遵循下列ARPANET主机名规则。它们必须以字母开始,以字母或数字结尾,仅仅包含字母,数字和下划线。

这里字母意味着ASCII字符,从A到Z。既然国际域名日益流行,你可能希望使用该选项来移除限制。

--enable-underscores

该选项控制squid针对主机名里下划线的行为。通用的标准是主机名里不包含下划线字符,尽管有些人不赞成这点。squid默认会对URL主机名里带下划线的请求产生一条错误消息。你能使用该选项,让squid信任它们,把它们当作合法的。然而,你的DNS解析器也许强迫使用非下划线请求,并且对带下划线的主机名解析失败。

--enable-auth[=LIST]

该选项控制在squid的二进制文件里支持哪种验证机制。你能选择下列机制的任意组合:basic,digest,ntlm.假如你忽略该选项,squid仅仅支持basic验证。假如你使用不带参数的--enable-auth选项,编译进程将增加对所有验证机制的支持。你可以使用以逗号分隔的验证机制列表:

% ./configure --enable-auth=digest,ntlm

我在第六章和第十二章里会谈得更多。

--enable-auth-helpers=LIST

这个旧选项现在已舍弃了,但为了保持向后兼容性仍保留着。你可以使用--enable-basic-auth-helperes=LIST来代替。

--enable-basic-auth-helpers=LIST

使用该选项,你能将helpers/basic_auth目录的一个或多个HTTP Basic验证辅助程序编译进来。请见12.2章找到它们的名字和描述。

--enable-ntlm-auth-helpers=LIST

使用该选项,你能将helpers/ntlm_auth目录的一个或多个HTTP NTLM验证辅助程序编译进来。请见12.4章找到它们的名字和描述。

--enable-digest-auth-modules=LIST

使用该选项,你能将helpers/digest_auth目录的一个或多个HTTP Digest验证辅助程序编译进来。请见12.3章找到它们的名字和描述。

--enable-external-acl-helpers=LIST

使用该选项,你能编译一个或多个扩展ACL辅助程序,这些在12.5章中讨论。例如:

% ./configure --enable-external-acl-helpers=ip_user,ldap_group

--disable-unlinkd

unlinkd是另一个squid的外部辅助进程。它的基本工作是对cache文件执行unlink()或truncate()系统调用。通过在外部进程里执行文件删除工作,能给squid带来明显的性能提升。使用该选项来禁止外部unlink进程功能。

--enable-stacktrace

某些系统支持在程序崩溃时,自动产生数据追踪。当你激活该功能后,如果squid崩溃,数据追踪信息被写到cache.log文件。这些信息对开发和程序bug调试有用。

--enable-x-accelerator-vary

该高级功能可能在squid被配置成加速器时使用。它建议squid在响应请求时,从后台原始服务器中寻找X-Accelerator-Vary头。

时间: 2024-08-09 22:01:56

squid 编译参数说明的相关文章

Cmake-MySQL编译参数说明

Cmake-MySQL编译参数说明 (来源于MySQL官方手册)https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html Formats Description DefaultIntroduced Removed   ##格式描述默认导入删除 BUILD_CONFIG  Use same build options as official releases ##b使用相同的编译选项为正式版本 CMAKE_B

编译参数说明

1.php编译参数说明: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR mod

mysql-5.5编译参数说明

MySQL编译安装常用参数: DCMAKE_INSTALL_PREFIX                mysql的安装路径 DMYSQL_DATADIR                          数据库存放目录 DMYSQL_USER                                mysql的所有者 DMYSQL_TCP_PORT                        tcp协议使用的端口(默认为3306) DMYSQL_UNIX_ADDR          

zabbix 编译参数说明

编译安装zabbix ./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy libcurl libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持    libcurl(允许你用不同的协议连接和沟通不同的服务器)., libcurl当前支持http,

Squid概述及相关配置说明

一.简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快.Squid 可以代理HTTP.FTP.GOPH

squid如何做正向代理,通过重定向器匹配正则重写url

首先是下载安装squid,squid的官网下载地址页面是http://www.squid-cache.org/Versions/,我安装的是3.5 stable版,此处不赘述,无非是configure.make.make install等 下文参考: http://www.liusuping.com/ubuntu-linux/squid-bianyi-anzhuang-canshu.html http://linuxme.blog.51cto.com/1850814/372960 http://

ubuntu10.04编译安装LAMP

ubuntu10.04编译安装LAMP以及简单wordpress的使用 : http://linuxme.blog.51cto.com/1850814/971631 一.源码安装LAMP 网上有一堆关于介绍lamp的在这里我就不罗嗦了,直接上配置过程 1.apr包的安装 apr简介: The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that

GCC 4.8.2 编译安装

https://my.oschina.net/u/728245/blog/184550 摘要: GCC 4.8.2 在 CentOS 6.5 下编译安装小记,遇到一些问题并解决. 以前从没有升级过GCC,一直用系统默认的GCC版本,最近在研究好久没有用过的 C, 便有了升级GCC的想发,大致如下. 环境: CentOS-6.5-i386 , gcc-4.4.7 系统必须已经安装有一个编译器,因为 gcc 也是需要编译的 首先 gcc 编译需要三个额外库,下载并按照下面的顺序安装它们,如下:1.

CentOS 6.5 编译安装 gcc-4.9.2

环境: CentOS-6.5 , gcc-4.4.7 系统必须已经安装有一个编译器,因为 gcc也是需要编译的,建议用root进行安装 首先 gcc 编译需要三个额外库,下载并按照下面的顺序安装它们,如下: 1. gmp     ftp://ftp.gnu.org/gnu/gmp 2. mpfr     ftp://ftp.gnu.org/gnu/mpfr 3. mpc     http://www.multiprecision.org/mpc 准备工作: 1. 编译安装 gmp # tar -