在免费亚马逊EC2上编译安装nginx+uwsgi+bottle

之前做的Python小站点均是用nginx反代方式,实际使用pythonapp.py方式启动,显着是非常不专业啊。而且效率也没测试过。真正对Python感兴趣时候是从[observer专栏杂记]的使用python爬虫抓站的一些技巧总结等文章开始的。So,之前因为部署uwsgi太麻烦虽然收藏了observer的配置Nginx+uwsgi更方便地部署python应用文章,但一直没有实际去配置过。为了表示不停折腾精神,这几天把网址缩短项目用bottle重写一下(bottle只有一个文件,比tornado轻量多了,反正俺也无需考虑效率问题),部署在一个亚马逊免费的EC2(ElasticComputeCloud)上。此次修改Todolist还包含引入免费的redis(使用redis4you提供的免费5M服务)等。所以趁此从头开始的机会,配置了一下uwsgi。记录下完整安装过程(其中好多安装配置cop...

精彩继续

Google do a barrel roll 效果揭秘

今天大家都见识到了Google的"doabarrelroll"效果(当然IE用户被赤裸裸无视了),因为这一段效果是通过CSS3实现的,在Chrome,Safari,Firefox和Opera浏览器上是可以非常完美的展现的。使用到的CSS如下:.barrel_roll{-webkit-transition:-webkit-transform4sease;-webkit-transform:rotate(360deg);-moz-transition:-moz-transform4sease;-moz-transform:rotate(360deg);-o-transition:-o-transform4sease;-o-transform:rotate(360deg);transition:transform4sease;transform:rotate(360deg);}当然这段代码需要一...

精彩继续

python property用法

property用来设置/读取一个类的属性,今天用到此方法记录一下备忘。官方文档描述如下:property([fget[,fset[,fdel[,doc]]]])classC(object):def__init__(self):self._x=Nonedefgetx(self):returnself._xdefsetx(self,value):self._x=valuedefdelx(self):delself._xx=property(getx,setx,delx,"I'mthe'x'property.")

精彩继续

网址缩短项目增加一个停留页面

为了满足lazyzhu等同学的要求网址缩短在跳转链接时候增加了一个倒数秒的停留页,页面直接扣的lazyzhuPM给俺的dv.gd的停留页。暂时俺的http://au81.com/并不打算部署此页面。依然保留直接跳转到目标页面机制下载地址:http://chairo.free.fr/down/shorturl0.2.1.rar

精彩继续

debian配置Tornado+MySql+nginx环境(附俺的网址缩短代码下载)

最近上线的网址缩短项目是学习Python的练手作,框架采用这一阵比较火热的Tornado。简单写一个配置安装顺序,仅为记录。全部软件均通过apt-get方式安装(Tornado除外)清除无用组件(感谢hostloc坛子的lsylsy2)apt-getupdate&&apt-getupgradeapt-get-ypurgeapache2-*bind9-*xinetdsamba-*nscd-*portmapsendmail-*sasl2-binapt-get-ypurgelynxmemtesterunixodbcodbcinst-*sudotcpdumpttf-*apt-getautoremove&&apt-getclean安装python2.6apt-getinstallpython2.6rm/usr/bin/pythonln-s/usr/bin/python...

精彩继续

Tornado获取客户端IP(补充)

今天发现犯了一个错误,前几天写过一篇“tornado获取客户端IP”,但今天查看数据库中数据时候发现所有的IP均是127.0.0.1(因数据库使用bigint存储,所以数据库中看到IP均是2130706433),在Group中搜索了一下发现Ben以前解释过这个问题BenDarnellTornadosupportsbothx-real-ipandx-forwarded-for,butyouhavetosetxheaders=TrueinyourHTTPServerconstructortohaveitlookateitherofthem.-Ben即tornado支持通过x-real-ip或x-forwarded-for来获取IP,但前提是需要在你的HTTPServer实例中增加xheaders=True参数,如:http_server=tornado.httpserver.HTTPServe...

精彩继续

Python IP转数字,数字转IP

def IntToDottedIP( intip ): octet = '' for exp in [3,2,1,0]: octet = octet + str(intip / ( 256 ** exp )) + "." intip = intip % ( 256 ** exp ) return(octet.rstrip('.')) def DottedIPToInt( dotted_ip ): exp = 3 intip = 0 for quad in dotted_ip.split('.'): intip = intip + (int(quad) * (256 ** exp)) exp = exp - 1 return(int...

精彩继续

tornado获取客户端IP

网上搜到的用tornado获取客户端IP都使用self.request.headers['X-Real-Ip'],但实际翻tornado源代码发现只需要获取self.request.remote_ip即可取到客户端IP见引用tornado源代码(对应文件为httpserver.py中HTTPRequest属性remote_ip)ifconnectionandconnection.xheaders:#SquidusesX-Forwarded-For,othersuseX-Real-Ipself.remote_ip=self.headers.get("X-Real-Ip",self.headers.get("X-Forwarded-For",remote_ip))#AWSusesX-Forwarded-Protoself.protocol=self.headers.get("X-Scheme"...

精彩继续