假设我的应用在域www.example.com
提供。
我应该如何(在哪里?)在Pyramid配置文件中指定它,以便像request.route_url
这样的函数自动选择它并生成正确的URL。
(我认为[server:main]
不适合这个地方)
答案 0 :(得分:4)
网址生成函数route_url
,static_url
,resource_url
都依赖于WSGI环境字典,它们从中获取生成完整网址所需的所有必要参数。
因此,一种方法是在请求创建时修改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
作为基本网址。
答案 1 :(得分:1)
是的,正确的反向代理将沿着适当的标头转发到您的wsgi服务器。请参阅金字塔食谱中的nginx食谱。