Python

Nginx反向代理 + Flask + gunicorn 架构解决获取用户真实ip问题

其实这个问题在Nginx + uwsgi + django 上是不存在的,因为nginx 与uwsgi链接是可以通过sock文件的,而nginx + flask 只能通过普通的反向代理。 所以就会出现一个nginx 反向代理常见的问题,实际对flask 发起的请求是由ningx完成,所以获取到的ip是服务器本机的地址,甚至是机器的内网地址。 uwsgi+nginx+django 我们…继续阅读 »
Python

解决python模块报错:“bz2 module is not available, No module named ‘_bz2’”

之前python在用pip安装scrapy模块的时候遇到过这个情况,但只是记笔记没有总结出来,今天又遇到了一次,索性博客记录一下。 解决方案 安装 bzip2-devel: 方法一: yum install bzip2-devel 方法二: 如果不行,可以编译安装: wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz && tar -zxf bzip2-1.0.6.tar.gz &&…继续阅读 »
Python

nginx+uwsgi完美配置文件,解决“upstream prematurely closed connection”报错

这段时间在折腾django,一开始用单一的uwsgi控制web访问,虽然说没有什么大问题,但是很多东西没法配置,比如超时时间,uwsgi虽然有个“harakiri”配置项,但并没有什么作用。 所以终究还是需要接口nginx来做前端代理,但是在代理的出现了一个问题,前端一直没有响应,nginx错误日志(/var/log/nginx/e…继续阅读 »
Python

Python selenium+PhantomJS实现爬取动态JS[自定义header]

爬取js的必要性在这里就不必多说了,也就是直接请求html并不会返回js所加载的数据,只有经过浏览器渲染后才回出现数据,比如在http://s.tool.chinaz.com/same 查询出的数据是经过js加载的(一方面为了数据不会被搜索引擎爬取,另一方面降低服务器并发负载)。 这种情况python一般可以用PhantomJS实现,这个工具…继续阅读 »