文件squid.conf用于设置和配置 Squid 代理服务器的所有不同选项。在下面的配置文件中,我们将配置/etc/squid/squid.conf文件以httpd-accelerator模式运行。在这种加速模式下,如果 Web 服务器与安装 Squid 的服务器运行在同一台服务器上,则必须将其守护程序设置为在端口 81 上运行。使用 Apache Web 服务器,可以通过将以下行分配给Port 80更改为Port 81在其httpd.conf文件中。如果 Web 服务器像我们一样在网络的其他服务器上运行,则可以为 Apache 保留相同的端口号 (80),因为 Squid 将绑定到端口 (80) 未被使用的不同 IP 地址上。
编辑squid.conf 文件,vi/etc/squid/squid.conf并添加/更改以下选项
http_port 80 icp_port 0 acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY cache_mem 16 MB cache_dir ufs /cache 200 16 256 emulate_httpd_log on redirect_rewrites_host_header off replacement_policy GDSF acl all src 0.0.0.0/0.0.0.0 http_access allow all cache_mgr admin@openna.com cache_effective_user squid cache_effective_group squid httpd_accel_host 208.164.186.3 httpd_accel_port 80 log_icp_queries off cachemgr_passwd my-secret-pass all buffered_logs on |
选项http_port指定 Squid 将侦听 HTTP 客户端请求的端口号。如果将此选项设置为端口 80,客户端将产生连接到 Apache Web 服务器的错觉。由于我们在加速模式下运行 Squid,因此必须侦听端口 80。
选项icp_port指定 Squid 将向相邻缓存发送和接收 ICP 请求的端口号。我们必须将此选项的值设置为 0 以禁用它,因为我们将 Squid 配置为 Web 服务器的加速模式。 ICP 功能仅在具有多个同级和父缓存的多级缓存环境中需要。在加速模式配置中使用 ICP 会给 Squid 增加不必要的开销。
选项acl QUERY urlpath_regex cgi-bin \? and no_cache deny QUERY用于强制某些对象永远不要被缓存,例如cgi-bin目录下的文件。这是一个安全功能。
选项cache_mem指定要用于缓存所谓的传输中对象、热对象和负缓存对象的内存量; RAM。这是一个优化功能。重要的是要注意,Squid 可以使用的内存远远超过您在此参数中指定的值,因此,如果您有 48 MB 的可用内存给 Squid,则必须在此处填写 48/3 = 16 MB。
选项cache_dir按此顺序指定:要使用的存储系统类型;ufs,缓存目录的名称;/cache对于 Squid,要在此目录下使用的磁盘空间,单位为兆字节 *200 兆字节*,要在缓存目录下创建的一级子目录的数量; 16 个一级目录,以及要在每个一级缓存目录下创建的二级子目录的数量;256 个二级目录。在加速模式下,此选项与您要使用 Apache Web 服务器提供的文件的大小和数量直接相关。
选项emulate_httpd_log,如果设置为ON,指定 Squid 应该模拟 Apache Web 服务器的日志文件格式。 如果您想使用像 Webalizer 这样的第三方程序来分析 Web 服务器,这将非常有用httpd日志文件。
选项redirect_rewrites_host_header,如果设置为OFF,告诉 Squid 不要重写重定向请求中的任何 Host: 标头。建议将此选项设置为OFF如果您在加速模式下运行 Squid。
选项replacement_policy指定 Squid 将使用的缓存策略,以确定代理需要腾出磁盘空间时必须替换缓存中的哪些对象。如果您在编译时没有指定--enable-heap-replacement选项,则默认情况下使用 Squid LRU 策略。在我们的配置中,我们选择 GDSF - *Greedy-Dual Size Frequency* 策略作为我们的默认策略。 有关更多信息,请参阅http://www.hpl.hp.com/techreports/1999/HPL-1999-69.html 和 http://fog.hpl.external.hp.com/techreports/98/HPL-98-173.html。
选项acl和http_access指定和定义要应用于代理服务器 Squid 的访问控制列表。我们的acl和http_access选项不受限制,并允许每个人连接到代理服务器,因为我们使用此代理来加速公共 Apache Web 服务器。有关在非加速模式下使用 Squid 的更多信息,请参阅您的 Squid 文档。
选项cache_mgr指定负责 Squid 代理服务器的管理员的电子邮件地址。如果 Squid 遇到问题,此人将收到邮件。您可以在此选项中指定名称或完整的电子邮件地址。
选项cache_effective_user和cache_effective_group指定缓存将运行的 UID/GID。不要忘记永远不要以root身份运行 Squid。在我们的配置中,我们使用 UIDsquid和 GIDsquid.
选项httpd_accel_host和httpd_accel_port向 Squid 指定真实的 HTTP 服务器,即 Apache,的 IP 地址和端口号。在我们的配置中,真正的 HTTP Web 服务器位于 IP 地址208.164.186.3, www.openna.com上,端口为 (80)。www.openna.com是我们网络上的另一个主机名,并且由于 Squid 代理服务器与 Apache HTTP Web 服务器不在同一主机上,因此我们可以为 Squid 代理服务器使用端口 (80),为 Apache Web 服务器使用端口 (80),这样就显得非常完美。
选项log_icp_queries指定是否要将 ICP; *ICP 用于交换关于邻居缓存中 URL 存在的提示* 查询记录到access.log文件。 由于我们不在 Squid 加速模式下使用 ICP 功能,因此我们可以安全地将此选项设置为OFF.
选项cachemgr_passwd指定访问cachemgr.cgi程序实用程序的操作所需的密码。此 CGI 实用程序程序旨在通过 Web 界面运行并输出有关 Squid 配置和性能的统计信息。my-secret-pass是您选择的密码,关键字all指定将此密码设置为与您可以使用此程序执行的所有操作相同。 有关更多信息,请参阅本章后面的 Squid 的 cachemgr.cgi 程序实用程序。
选项buffered_logs,如果打开ON,可以稍微加快某些日志文件的写入速度。 这是一个优化功能。