在NGINX aganist Tornado上进行身份验证

时间:2014-04-08 14:38:52

标签: python session authentication nginx tornado

好吧,我刚刚设置了NGINX,现在它正在工作。 作为我在NGINX下的BackEnd WebServer,我运行了Python Tornado:

我只使用NGINX来允许大型上传(大型),因此我的一个URL(用于上传)在NGINX上提供,其余的URL由Tornado提供。

我使用Tornado提供的会话(在http://localhost:8080/运行),NGINX在http://localhost:8888/运行;

这是我的nginx配置文件:

location /images/upload {

            upload_pass /after_upload;
            .....
            .....
            .....
}


location /after_upload {
        proxy_pass   http://localhost:8080/v1/upload/;
}

如您所见,NGINX上的身份验证没有任何内容。

proxy_pass要求会话有效的网址(由Tornado提供)

这是系统的方案如下:

enter image description here

当用户登录系统时,系统会在服务器和用户的浏览器中创建Tornado(tornado sessionssession,因此我需要将身份验证传递给NGINX并再次继续此身份验证过程在龙卷风服务。

我如何更改NginX以对Tornado进行身份验证?

提前致谢

1 个答案:

答案 0 :(得分:0)

嗯,Nginx作为代理服务器,因此无需在Tornado或您的应用程序中进行更改。对于我的应用程序,我只是将NGINX网址中的重写添加到Tornado网址。所以这包括所有流量(auth等)和所有HTTP结构,如果你在Tornado工作。

server {

        listen   8888; ## listen for ipv4
        server_name  localhost;
        access_log  /var/log/nginx/localhost.access.log;
        client_max_body_size 100000M;
        location / {
                #Real Location URL for Tornado.
                proxy_pass http://localhost:8080/;
        }
}

密钥是 proxy_pass ,其中8888端口的每个请求都传递到localhost中的8080端口。

一切都从Nginx传递给Tornado BackEnd。