Rails 的地址查询通常由运行 Geocoder 的那个应用进程发出。开发者浏览器里配好的代理,并不能证明某个 Web Worker 或后台任务走了那条路由。

Geocoder 在配置中提供了代理设置。在应用的初始化文件里,可以为两种目标协议分别指定明确的端点:

Geocoder.configure(
  http_proxy: 'proxy.example.net:8080',
  https_proxy: 'proxy.example.net:8080'
)

在这条 Net::HTTP 查询路径上,Geocoder 会按查询协议选用 http_proxy 或 https_proxy,并把端点解析成主机、端口和可选凭据。请让这项设置与实际使用的查询后端和 Geocoder 版本保持一致。当获准访问公共服务商的查询不需要代理账号时,HTTP 代理列表可以为这个 HTTP 中间人提供合适的 host:port 候选值。

要配置真正执行工作的进程。如果地理编码跑在独立的任务 Worker 里,只改 Web 部署中的初始化文件并不会更新已经在运行的 Worker 配置。请按应用常规的部署流程重新加载或重启相应进程。对于由 Sidekiq 执行的查询,请检查实际的 Worker 进程及其客户端输入。

相关文章