2
我有一個金字塔應用程序在nginx(偵聽端口8080)後面的gunicorn上運行(監聽Unix套接字)。當金字塔視圖返回HTTPFound(location='/')
HTTP響應包含Location: http://example.host/
沒有端口號,所以用戶得到「無法連接」的錯誤。我無法確定在哪裏指定非標準端口號,或者(最好)在生成Location
標頭時如何告訴金字塔從請求中提取它。從應用程序配置HTTPFound返回的位置標頭不包含非標準端口號
摘錄:
[server:main]
use = egg:gunicorn#main
host = unix:%(here)s/run/server.sock
workers = 4
Nginx的配置:
server {
listen 8080;
root /path/to/app;
location/{
proxy_pass http://unix:/path/to/app/run/server.sock;
include proxy_params;
}
location /static {
root /path/to/app/static;
}
}
謝謝,您的回覆讓我朝着正確的方向發展: 1)我用'request.route_url'調用替換了'location'參數中的硬編碼字符串(我的壞,''/''更容易類型比'request.route_url('frontpage')')。 2)Nginx的proxy_params包含 'proxy_set_header $ host主機;' 但它應該是 'proxy_set_header主機$ HTTP_HOST;' – rkhayrov
@Burhan:金字塔負責生成絕對URL爲應用程序開發的所以這不是約在這裏擔心;缺少的是正確的路由調用和ngnix配置。 –