2

我有一个 Pyramid 应用程序在 nginx(监听端口 8080)后面的 gunicorn(监听 Unix 套接字)上运行。当 Pyramid 视图返回HTTPFound(location='/')HTTP 响应时包含Location: http://example.host/没有端口号,因此用户会收到“无法连接”错误。我不知道在哪里指定非标准端口号,或者(最好)如何告诉 Pyramid 在生成Location标头时从请求中提取它。

摘自应用程序配置:

[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;
    }
}
4

1 回答 1

2

要获取服务器端口,请使用host_port

同样根据rfc2616,您确实应该在Location标头中发送绝对 URI 而不是相对 URI。

于 2012-06-14T05:53:54.570 回答