Flask部署服务器将添加服务器名称重定向到地址

时间:2017-10-09 16:38:07

标签: python redirect nginx flask gunicorn

我将Nginx配置为在127.0.0.1:8000上运行的Gun​​icorn服务器的反向代理。

Nginx配置如下:

server {
        server_name www.programlama.tk;
        rewrite ^ http://programlama.tk/ permanent;
}

server {
listen 80;  # listen onport 80
server_name programlama.tk localhost; #requests to this domain or ip

location / {
    include proxy_params;
    proxy_pass http://127.0.0.1:8000;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

到目前为止一切顺利。在我的烧瓶应用程序中,当用户进行身份验证时,有一种简单的方法可以重定向到用户主页,该主页是“ev”。 ' EV'意味着回家。

@app.route('/ev')
def ev():
    return render_template('ev.html')

但不是 http://programlama.tk/ev ,而是重定向到

  

http://programlama.tk%2Cprogramlama.tk/ev

此地址并不存在。它还将服务器名称添加到重定向地址。

1 个答案:

答案 0 :(得分:1)

我将nginx配置更改了一点as described in the documentation

现在它按预期工作。

location / {
    proxy_pass         http://127.0.0.1:8000/;
    proxy_redirect     off;

    proxy_set_header   Host                 $host;
    proxy_set_header   X-Real-IP            $remote_addr;
    proxy_set_header   X-Forwarded-For      $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto    $scheme;
}