假设我的应用程序在 domain 提供www.example.com
。
我应该如何(在哪里?)在 Pyramid 配置文件中指定它,以便函数request.route_url
自动选择它并生成正确的 URL。
(我认为[server:main]
不是这个地方)
url 生成函数route_url
,static_url
都resource_url
依赖于 WSGI environ 字典,它们从中获取生成完整 URL 所需的所有基本参数。
因此,一种方法是在请求创建时修改 WSGI 环境字典,并修改所需的参数。事件非常适合这种事情:
from pyramid.events import NewRequest
from pyramid.events import subscriber
@subscriber(NewRequest)
def mysubscriber(event):
event.request.environ['HTTP_HOST'] = 'example.com'
在此之后,route_url
将example.com
作为基本 URL。
是的,适当的反向代理将沿着适当的标头转发到您的 wsgi 服务器。有关 nginx 食谱,请参阅金字塔食谱。