我正在使用Flask应用程序,在不同的子域下有许多路由。它使用SERVER_NAME
设置并在不同的蓝图上设置子域,以根据子域执行初始路由。
我尝试配置一条绕过主机要求的路线,以便现在匹配SERVER_NAME
,并且无法弄明白。是否可以在保持SERVER_NAME
设置的同时执行此操作?
即。我希望即使SERVER_NAME="mydomain.com"
并且请求是http://localhost:80/my/special/route/
答案 0 :(得分:5)
任何路线只是Werkzeug's Rule的扩展/实施。因此,只需为文档设置subdomain=None
,请参阅:FLASK Route。
在代码库之外以及像nginx这样的基础架构中进行所有主机名匹配是一件非常好的事情。为您提供开发和测试等不同环境的灵活性,然后您可以将主机名转发为可以自定义方式提取的标题。 Digital Ocean提供了一个非常好的介绍,有一个很好的问题可以说明如何执行此操作:nginx subdomain and domain rewrite w proxy pass
这个策略的一个很大的优点是你不需要使用你的应用程序绑定到端口80(作为root),这样可以带来严重的安全性好处,而且不用担心SERVER_NAME的实现,这会让很多事情失去意义。期望。请参阅:Why flask can suck.