Squid Web Cache Wiki

Squid Web Cache 文档

🔗 外部程序

🔗 dnsserver

由于标准的 gethostbyname(3) 库调用会阻塞,Squid 必须使用外部进程来实际执行这些调用。通常会有十个 dnsserver 进程由 Squid 启动。通信通过绑定到回环接口的 TCP 套接字进行。 dns.c 中的函数主要负责启动和停止 dnsservers。与 dnsservers 的读写操作发生在 IP 和 FQDN 缓存模块中。

🔗 pinger

尽管 Squid 可以直接发送和接收 ICMP 消息,但出于两个重要原因,我们使用外部进程:

  1. 由于 Squid 同时处理大量文件描述符,因此当 ICMP 由单独的进程处理时,我们可以获得更精确的 RTT(往返时间)测量结果。
  2. 发送和接收 ICMP 需要超级用户权限。我们不希望 Squid 以 root 身份启动,而是希望将更小、更简单的 pinger 程序安装为 setuid 权限。

🔗 unlinkd

unlink(2) 系统调用可能导致进程阻塞很长时间。因此,我们不希望从 Squid 中调用 unlink()。相反,我们将它们传递给这个外部进程。

🔗 redirector

重定向器进程从标准输入读取 URL,并将(可能已更改的)URL 写入标准输出。它被实现为一个外部进程,以最大限度地提高灵活性。

导航:网站搜索网站页面分类🔼 向上