0

我正在尝试使用 webapp2 的DomainRoute将请求路由到特定用户。路由的定义如下所示:

app = webapp2.WSGIApplication([
                                DomainRoute("<subdomain>." + os.environ["HTTP_HOST"], [
                                    webapp2.Route('/',ClientHandler)]),
                            ('/', MainHandler)],
                            debug=True)

处理程序都存在,目前,我的 ClientHandler 应该只是吐出当前的子域,但是当我当前转到 nosub.localhost:8090 时,它甚至没有到达服务器。我需要编辑我的主机文件吗?如果是这样,添加像 *.localhost 这样的通配符是否有效,以便任何子域都可以使用?

4

1 回答 1

1

是的,您需要编辑主机文件 -whatever.localhost不会自动解析为127.0.0.1. 或者,节省一些时间并使用xip.io

但是,您的代码有一个重大问题:您在os.environ["HTTP_HOST"]仅在第一个请求时运行的上下文中使用。这意味着您从应用程序的第一个请求中提取主机名,并将其用作它和所有后续请求的基本名称 - 这绝对不是您想要的。例如,如果您的应用实例的第一个用户来自subdomain.myapp.com,您将为subdomain.subdomain.myapp.com.

于 2012-10-04T15:12:40.987 回答