我只使用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
提供)
这是系统的方案如下:
当用户登录系统时,系统会在服务器和用户的浏览器中创建Tornado(tornado sessions
)session
,因此我需要将身份验证传递给NGINX
并再次继续此身份验证过程在龙卷风服务。
我如何更改NginX以对Tornado进行身份验证?
提前致谢
答案 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。