将某个子域排除在 Privoxy 上游代理之外
创建一个针对性的直连例外,避免误把整个父域送出预期的代理路由。
主站应使用父级代理,而某个内部子域不应如此。这是一处路由例外,它值得一个足够狭窄、能精确表达这一点的匹配模式。
Privoxy 在主配置中提供常规转发规则,并在 action 文件中提供按请求覆盖转发的方式。请使用与你已经在维护的配置相匹配的机制;不要为了看哪个生效而在两处都添加相互冲突的例外。
主配置中的例外
forward / parent.example.net:8080
forward intranet.example.net .
对于允许使用未认证公共 HTTP 父级代理的公共目标,可以从 HTTP 代理列表中选取默认父级的候选,而不要沿用其他父级的凭据。此处后出现的精确主机规则会为该主机名选择直连转发。其他目标仍继续匹配默认父级规则。Privoxy 的转发规则采用最后匹配的顺序,因此后面的一条通用规则可能会改变该结果。
在添加前导点或通配符之前,请先阅读模式语法。后缀形式的模式可能匹配到比你预期那一个主机更多的名称。同时要让代理的名称与网站名称保持区分:模式选择的是被请求的目标。
action 文件中的覆盖是另一种选择
{+forward-override{forward .}}
intranet.example.net
这会明确为匹配的请求选择直连转发。删除较早的一条覆盖并不一定等同于选择直连转发;常规配置中仍可能包含父级规则。
当例外看起来无效时,应检查适用的 action 节及其顺序。一个主机可能匹配多个 action 模式,你期望的 action 可能被后面的匹配改变。
直连意味着不同的网络决策
直连例外可能暴露 Privoxy 自身的外出地址,而不是父级代理的出口。对私有服务来说这也许恰好正确,但它应当属于需求的一部分,而不是事后才发现的副作用。
该例外也不授予网络可达性。Privoxy 所在主机仍需要通往目标的路由以及相应的访问权限。如果只有父级代理能到达该服务,那么绕过它就会失败,即使模式本身有效。
把示例限制在所需主机名上,并单独检查相关的认证主机或资源主机。把一个例外扩展到所有子域,可能会悄悄地把无关流量转移到另一条外部路径。