在Google Appengine上屏蔽网址路径

时间:2015-11-03 01:15:51

标签: google-app-engine

我想阻止在服务器上访问某个特定路径(例如https://myapp.appspot.com/foo/bar),以便调用者获得404或某种程度的东西。请注意,我安装了基于正则表达式的处理程序(例如/foo/.* - 将触发Handler),因此默认情况下/ app / foo / bar将被定向到此Handler。我想为' / foo / bar'添加一个特定的处理程序。在较低/ app / / 之前的较高级别。

执行此操作的一种方法是添加url处理程序并将其定向到not_found应用程序处理程序,例如:

- url: /foo/bar.*
script: not_found.app

如果有更好的方法,请关注分享,我们将非常感激。

基本上,我有一个流氓客户端使用机器人连续点击我的服务器并消耗不需要的资源。这个机器人调用的特定URL是我可以完全禁用的URL。如果有关于如何使用此类URL并将其指向较低优先级实例的任何提示,那么这也会非常有用。

顺便说一句,我已经将这个机器人使用的一系列IP添加到dos.yaml中。但这并没有帮助,因为它不断改变其IP地址。

我确信这是一个非常典型的场景,网站管理员都有专家建议(任何帮助/建议都受到高度欢迎 - 请原谅我的行人问题)。

1 个答案:

答案 0 :(得分:3)

您可以使用dispatch.yaml将请求强制路由到您选择的任何模块

dispatch:
- url: "*/foo.bar"
  module: cheapmodule

然后在cheapmodule.yaml中确保你最多只有一个最便宜的单个实例,比如使用instance_class B1和max_instances 1进行基本扩展(不确定如果指定cheapmodule为零实例会发生什么,例如手动缩放实例0,或实例1开始,但然后在其_ah / start处理程序上调用google.appengine.api.modules.modules.set_num_instances_async(instances, module='cheapmodule') - 也许值得尝试)。