网站首页 > 技术教程 正文
hi-nginx通过redis管理会话。
什么是会话?
在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话。
Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。
要开启管理,需要做三件事。
第一件开启userid:
userid on; userid_name SESSIONID; userid_domain localhost; userid_path /; userid_expires 300s;
这个功能是nginx内建的,可以直接使用。需要注意的是,hi-nginx只认识SESSIONID的userid_name。
第二件是配置redis服务器:
hi_redis_host 127.0.0.1; hi_redis_port 6379;
当然,你应该先安装redis并确保它运行。
第三件是在location段开启会话管理:
location / { hi_need_session on; hi_session_expires 300s; hi_python_script python/index.py; }
整个nginx配置写下来,就是:
1 server { 2 listen 8080; 3 server_name localhost; 4 5 userid on; 6 userid_name SESSIONID; 7 userid_domain localhost; 8 userid_path /; 9 userid_expires 300s;10 11 hi_redis_host 127.0.0.1;12 hi_redis_port 6379;13 14 15 location / {16 hi_need_cache off;17 hi_cache_expires 5s;18 19 hi_need_session on;20 hi_session_expires 300s;21 hi_python_script python/index.py;22 }23 }
需要注意是,应该确保hi_session_expires和userid_expires的值保持一致。
配置写完后,记得reload或者restart nginx。
接下来就是使用会话管理的api了。
说来太简单,都不好意思写出来,用req.has_session,req.get_session和res.session即可:
@app.route('^/session/?