PAC常见问题

浏览器已配置PAC文件,但未生效

  1. 将pac文件的地址放到浏览器地址栏中,如果无法正常访问则检查地址的正确性
  2. 检查pac文件的MIME类型是否为application/x-ns-proxy-autoconfig,如果不是则重新配置
  3. 检查pac文件的语法是否有错误,导致浏览器加载失败

PAC文件更新后,浏览器如何生效

  • 方法一:当前主流浏览器已支持自动更新,可以稍等一会,如果不行再尝试下面方法
  • 方法二:清除浏览器缓存,关闭浏览器后重新打开生效
  • 方法三:取消代理配置,保存退出后,再重新配置一次PAC代理配置,使之重新生效

PAC文件加载后,浏览器性能有所下降

PAC文件中使用的isInNet(), isResolvable(), dnsResolve() 函数会调用DNS解析,该解析过程会拉长请求时间。
当浏览器收到请求后,会先检查是否有缓存,如果有则不会有影响;如果没有缓存或者缓存过期后,浏览器会根据访问信息请求DNS服务器解析域名,如果DNS服务器响应缓慢,那么这些请求也会相应缓慢。
目前有很多网站会使用非常多的域名来提供内容,并且DNS查询请求是串行,而非并行,因此大型的网站可能延迟会更大。
这一类问题可以通过dig来排除DNS的解析响应过程。当响应过程超过500ms后,终端用户会有明显的缓慢体验。

PAC配置后出现连接卡住

当PAC配置文件的路径是使用IP地址时,浏览器会试图连接该IP地址,直到连接超时,超时的时间大约是几秒钟,浏览器在等待超时的过程中会卡住,直到超时。一般该情况发生在浏览器首次加载访问站点时。
如果用户的网络未接入互联网,无法访问PAC地址时,建议PAC路径使用DNS的方式。
当PAC文件路径使用DNS时,浏览器会尝试解析DNS主机名,解析失败后,浏览器跳过该模式正常工作,这个过程大约100ms左右,远远小于IP地址连接超时时间,用户感知度弱。当浏览器重新接入互联网后,PAC模式恢复工作。

使用负载均衡后连接异常

如果您通过JavaScript hacks的方法实现负载均衡的功能,非常有可能导致连接异常出现,其主要是通过随机路由的方式来实现,但这种方式的问题是无法管理具体连接,无法友好的支持链路会话和长连接,因此会出现异常。
代理的负载均衡最好是基于代理本身来做,在代理的前端引入LB来实现多个代理的负载均衡,例如LVS,HA等均可实现,其可以管理链路会话,能很好的支持长连接。

在使用多个网卡地址时,通过myIpAddress()函数获取的地址非预期

浏览器在调用PAC时,会将操作系统提供的第一个活跃的网卡地址作为函数返回值。

Windows系统修改网络地址的方法为

  1. 开始-运行-输入ncpa.cpl-确认
  2. 选择高级标签,单击 高级设置 ,单击网卡和绑定 标签
  3. 在连接区域中,通过箭头来选择希望重新排序的连接进行重新排序。

另外也可以根据实际获取的地址,修改PAC文件中的地址来适配终端。

更新时间: