什么时候用squid
先看下官网的内容吧 For Content Delivery Providers: distribute your content worldwide. Squid makes it easy for content distributors and streaming media developers to distribute content worldwide. CDN providers can buy cheap PC ha rdware running Squid and deploy in strategic locations around the internet to serve enormous amounts of data cheaply and efficiently.
A large number of companies have deployed servers running Squid in the past in exactly this manner. 其实当我们的业务需要对我们的请求做缓存,这时候先指向squid的地址,squid会根据请求命中,如果缓存没有,则去远程请求,并返回,记录缓存数据 听起来就是我们用的CDN。 从squid官网看,很多cdn的开发逻辑其实和squid非常类似,或者就是squid集群,里面放了用户的资源缓存,和源站哈。这个具体配置的时候你会更明确这些信息。
squid安装
squid由于在对应的yum和apt源里面所以可以直接安装,这里不再赘述
|
|
squid如何配置
可以看参考文档的配置样例https://wiki.squid-cache.org/ConfigExamples 可以发现squid大致分为几个模块配置
Authentication(认证)
支持如下认证方式https://wiki.squid-cache.org/Features/Authentication
- DB: Uses a SQL database.
- getpwam: Uses the old-fashioned Unix password file.
- LDAP: Uses the Lightweight Directory Access Protocol.
- MSNT: Uses a Windows NT authentication domain.
- MSNT-multi-domain: Allows login to one of multiple Windows NT domains.
- NCSA: Uses an NCSA-style username and password file.
- NIS (or YP): Uses the NIS database
- PAM: Uses the Unix Pluggable Authentication Modules scheme.
- POP3: Uses an email server to validate credentials. Useful for single-signon to proxy and email.
- RADIUS: Uses a RADIUS server for login validation.
- SASL: Uses SASL libraries.
- SMB: Uses a SMB server like Windows NT or Samba.
- SSPI: Windows native authenticator
在认证配置方面,我们使用auth_param配置auth相关的用户名密码等信息 命令格式参考 auth_param scheme parameter [setting] 这里看下官网的建议配置
|
|
编写acl
有了用户密码认证,那就需要添加到规则之上,在squid里面是通过acl控制的,熟悉nginx绘图ftp配置的的同学应该不陌生,这里参考一个官网的配置
|
|
认证具体大家想看可以看文档,具体看我们后面的配置哈
Interception(截断, 可能修改)
了解web前端的大家应该都知道,这个interceptor指的是在发起http之前对请求进行一些自定义的修改,使之满足我们的最终请求,常见的比如增加authorization头等信息 而squid中的interceptin更多的指的是各个系统模式下的配置方式 这里可以看下linux截断相关的配置,其实更多是中继的意思 https://wiki.squid-cache.org/ConfigExamples/Intercept/LinuxDnat 这篇文章不错,介绍了通过iptables做forward的一些内核参数和防火墙处理,通过iptables, 其实可以做到到类似网站的80通过到一台中继服务器继续运行