【问题标题】:URL Map is not working with backend service on Load Balancer Google CloudURL 映射不适用于负载均衡器 Google Cloud 上的后端服务
【发布时间】:2021-06-15 23:32:42
【问题描述】:

我正在使用负载均衡器在我们的后端服务上设置 URL 映射。问题是我的 URL 映射由于某种原因无法正常工作。当我尝试浏览 domain.com/path 时,它显示

在此服务器上找不到请求的 URL /bpd。

我确实相信我的方法是正确的,但似乎仍然无法正常工作。

请看下面的截图:

[![图片][1]][1]

/* - 工作

/path1 和 /path2 - 不工作,显示错误 - 在此服务器上找不到

app.yaml 文件:

runtime: python27
api_version: 1
threadsafe: true
service: 
handlers:
- url: /
  static_files: 
  upload: 
  secure: always
  redirect_http_response_code: 301

- url: /(.*)
  static_files: www/\1
  upload: www/(.*)

我还设置了无服务器网络端点组,并连接了 Google App Engine 的后端服务。

感谢大家的帮助。

【问题讨论】:

  • 您的后台有日志吗?您是否看到一些入站请求但访问了错误的路径?
  • 除了Guillaume的评论,你的app.yaml是怎么配置的?
  • 我也没有看到任何入站日志@guillaumeblaquiere
  • @SamuelRomero 我添加了我的 yaml 配置
  • 你如何调用,例如,带有 curl 的地址验证器后端(哪个有效)?可以给我看看图案吗?

标签: google-app-engine google-cloud-platform load-balancing url-mapping


【解决方案1】:

感谢您的评论,虽然我发现了错误。事实上,当你在负载均衡器中定义一个 URL 映射时,负载均衡器入口中的查询路径默认是按原样转发到后端的。

我们来看看你的案子

  • 你有这个 URL 映射:<URL>/address/*。您的 URL 路径是 /address/*
  • 后端是<myAddressAppEngine.appspot.com>。它收到了这条路径上的请求<myAddressAppEngine.appspot.com>/address/*

它不起作用,因为实际上你期望<myAddressAppEngine.appspot.com>/*


要解决这个问题,您可以在 URL 映射中使用高级模式

首先为任何 URL 和任何路径设置默认后端

然后添加一个新的路径规则并像这样配置它,路径重写为/

【讨论】:

  • 谢谢@Guillaume,我会尝试你的建议并回复你
  • 这部分记录在here
  • 谢谢@guillaume。此外,只有 1 个 URL 映射有效,其他则无效。
猜你喜欢
  • 2020-08-27
  • 2019-12-14
  • 2019-07-22
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
  • 2020-04-23
  • 2014-07-04
  • 1970-01-01
相关资源
最近更新 更多