2019独角兽企业重金招聘Python工程师标准>>>

web.py是用DiskStore保存session文件的,參考官網的例子,結果直接python code.py運行沒問題,但和nginx結合就不行了,具體表現是:瀏覽器每發起一個請求,就會生成一個session文件。這也導致了向session存儲數據失效。

這個問題折磨了我兩天,Google上也很難找到相關說法。最後在 https://github.com/webpy/webpy/issues/132

找到了些靈感,原來是cookie path的問題!

解決方法:

修改 /usr/local/lib/python2.7/site-packages/web/session.py的第148行(web.py 0.37版本)

web.setcookie(cookie_name, session_id, expires=expires, domain=cookie_domain, httponly=httponly, secure=secure    , path=cookie_path)

path=cookie_path 改成 path= '/'

問題解決!

後來分析應該就是是web.py的bug,比如訪問 http://127.0.0.1/hello ,web.py會把sessionid的cookie的

path設置為 "/hello" (實際應該是"/"),當然我這種改動太暴力了些,只對「只使用根目錄」的應用有效,

如果你使用多層的目錄URL,或者有一套複雜的session設計,那肯定不能照搬。

转载于:https://my.oschina.net/scriptboy/blog/79983

nginx+web.py+fastcgi(spawn-fcgi)的session失效問題相关推荐

  1. linux下nginx+python+fastcgi部署总结(web.py版)

    2019独角兽企业重金招聘Python工程师标准>>> 在上一篇文章linux下nginx+python+fastcgi部署总结(django版)中,我们部署了nginx+djang ...

  2. Python Web初学解惑之 WSGI、flup、fastcgi、web.py的关系

    首先声明这篇文章 是我从 豆瓣 上面看到的. 原文地址 http://www.douban.com/note/13508388/?start=0&post=ok#last    看我之后 豁然 ...

  3. Nginx+PHP(FastCGI)搭建胜过Apache十倍的Web服务器

    前言:本文是我撰写的关于搭建"Nginx + PHP(FastCGI)"Web服务器的第6篇文章.本系列文章作为国内最早详细介绍 Nginx + PHP 安装.配置.使用的资料之一 ...

  4. nginx连接uwsgi使用web.py框架构造pythonweb项目

    2019独角兽企业重金招聘Python工程师标准>>> 相关页面: http://webpy.org/install http://uwsgi-docs.readthedocs.or ...

  5. 从0开始,在Linux中配置Nginx反向代理、负载均衡、session共享、动静分离

    写这篇文章花费了我近一周的时间,参考网上许多优秀的博客文章,我不敢说写的很好,至少很全很详细.本文先介绍原理部分,然后再进行实战操作,我认为这样才会有更深的理解,不过这也导致了文章篇幅很长.但是,如果 ...

  6. Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)

    一,Nginx基本安全优化 1.1 调整参数隐藏Nginx软件版本号信息 一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的.因此,我们应尽量隐 ...

  7. 20步打造最安全的Nginx Web服务器

    Nginx是一个轻量级的,高性能的Web服务器以及反向代理和邮箱(IMAP/POP3)代理服务器.它运行在UNIX,GNU/Linux,BSD各种版本,Mac OS X,Solaris和Windows ...

  8. 20个Nginx Web服务器最佳安全实践

    0个Nginx Web服务器最佳安全实践 20个Nginx Web服务器最佳安全实践  Nginx 是一个轻量级,高性能的Web服务器/反向代理和电子邮件代理(IMAP/POP3),它可以运行在UNI ...

  9. 在windows下如何快速搭建web.py开发框架

    用Python进行web开发的话有很多框架供选择,比如最出名的Django,tornado等,除了这些框架之外,有一个轻量级的框架使用起来也是非常方便和顺手,就是web.py.它由一名黑客所创建,但是 ...

最新文章

  1. centos7 lvm管理 把/home空间转移给/
  2. vb.net调用oracle存储过程,今天搞好了VB.NET调用Oracle存储过程返回游标的问题
  3. @RequestMapping的使用
  4. Java学习---流与文件
  5. 快速排序算法 java 实现
  6. java 模板方法设计模式_Java中的模板方法设计模式
  7. java设计模式在项目中的使用_SpringMVC项目里,有必要使用一些设计模式吗?
  8. 猎豹浏览器插件无法加载怎么办 插件无法加载解决方法
  9. 交换机VLAN、 TRUNK 、VTP 配置
  10. java 类.class_Java 反射之根基 Class 类
  11. 动态得到查询结果后绑定
  12. 广数系统加工中心编程_数控铣和加工中心编程
  13. 怎么给pdf添加水印-四个简单步骤
  14. Windows10 1050Ti cuda toolkit11.3 pytorch-gpu 踩坑教程
  15. i2c 驱动五:gpio模拟i2c
  16. 天梯赛PTA-7-17 约瑟夫环
  17. 陈嘉哲:黄金原油跳水承压,日内或将延续,如何操作?附操作建议
  18. 【Android】通用系列 —— 快速搭建设置界面
  19. win10浏览器服务器代理设置
  20. 关于IDM在b站的视频中不显示下载浮条的为题?

热门文章

  1. 利用数组实现栈java,用java编写出来:用数组实现一个栈
  2. mysql 表示时间_MySQL-时间(time、date、datetime、timestamp和year)
  3. 利用Gtmetrix检测你的网站载入速度!
  4. 基于HTML5实现的超酷摄像头(HTML5 webcam)拍照功能 - photobooth.js
  5. svm中拉格朗日对偶问题的推导
  6. 关于抓包出现TCP DUP ACK问题
  7. mysql MHA 集群搭建
  8. 【转载】Python中collection.Counter的用法
  9. C++——复制构造函数的形参为什么要是const引用
  10. SpringBoot—数据库初始化脚本配置