nginx+多uwsgi的配置

测试下nginx+多uwsgi的配置. 一个flask项目: wangxh@mac : ~/myapp/myhome$ tree . ├── __init__.py ├── s.ini ├── s2.ini ├── templates │ └── index.html ├── ui.py └── ui.pyc wangxh@mac : ~/myapp/myhome$ cat s.ini [uwsgi] socket = /tmp/s.sock master = true module = ui callable = app uid = 4294967294 gid = 4294967294 buffer-size = 25000 wangxh@mac : ~/myapp/myhome$ cat s2.ini [uwsgi] socket = /tmp/s2.sock master = true module = ui callable = app uid = nobody gid = nobody buffer-size = 25000 wangxh@mac : ~/myapp/myhome$ cat ui.py #!/usr/bin/python #coding=utf-8 import sys sys.path.append('/Library/Python/2.7/site-packages') from flask import Flask, request, render_template, redirect, url_for, session, flash import flask import jinja2 import datetime import urlparse import random import hashlib import re app = Flask(__name__) app.secret_key = '\x9a\xf8pJp\xbf\xbdBY\xb0\xfd\xa68\xac\x809j\x0c\xd6\x89\xc5,\xcf\xc2' @app.route('/') def index(): return render_template("index.html") if __name__ == "__main__": #app.debug = True app.run() 配置nginx: wangxh@mac : ~/myapp/myhome$ cat /usr/local/nginx-1.3.6/conf/nginx.conf|grep -v '#'|grep -v '^$' worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream ui { server unix:///tmp/s.sock; server unix:///tmp/s2.sock; } server { listen 80; server_name localhost; location / { include uwsgi_params; uwsgi_pass ui; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 运行,在两个终端中分别运行: ...

September 18, 2012 · notsobad

amchart hack

我想修改下amchart的饼图样式,动态创建svg中的text标签,但是在chrome中测试 var $el = $('<text y="-10" fill="#d10000" font-family="Verdana" font-size="20" text-anchor="start" transform="translate(389,269)" fuck-amchart="0">24.4%</text>'); $($0).after($el); 这样的代码是无法生效的,而只有这样的可以: $el = $($0).clone(); $el.attr('font-size', 32); $($0).after($el); 也就是说,用jquery创建的元素,是无法写入svg的,只能从svg中现有元素复制出来,然后修改的元素可以追加到svg中。 ...

August 28, 2012 · notsobad

make iso in mac os

一块u盘里是个系统镜像,我想把它写到iso文件中 wangxh@mac : ~/file$ mount /dev/disk0s2 on / (hfs, local, journaled) devfs on /dev (devfs, local, nobrowse) map -hosts on /net (autofs, nosuid, automounted, nobrowse) map auto_home on /home (autofs, automounted, nobrowse) /dev/disk1 on /Volumes/RamDisk (hfs, local, nodev, nosuid, noowners, mounted by wangxh) /dev/disk2s4 on /Volumes/GRMCULXFRER (msdos, local, nodev, nosuid, noowners) wangxh@mac : ~/file$ diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *320.1 GB disk0 1: EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 319.2 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: RamDisk *2.4 GB disk1 /dev/disk2 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *4.2 GB disk2 1: Windows_FAT_32 GRMCULXFRER 4.2 GB disk2s4 /dev/disk2s4是U盘。直接dd会报错 ...

August 28, 2012 · notsobad

用bat来启动putty

putty连接实在是烦,建个bat来自动登录。 在putty中保存会话,填写名字、ip、登录用户名

August 28, 2012 · notsobad

learning android develop notes

琐碎记录 在layout xml中,元素如果需要在java中引用,就需要有android:id setContentView(R.layout.activity_main),即把res/layout/activity_main.xml载入 R.layout用来引用layout的元素,R.id用来引用所有的id res/values-fr, 是法语对应的目录 调用字符串:String hello = getResources().getString(R.string.hello_world) 模拟器中无法用键盘输入文字:编辑avd,在hardware中添加键盘支持 导入项目时,经常报“@Override annotation error (android prefs)”, 参考这个: ...

August 26, 2012 · notsobad

linux基础能力测试

我会不断补充这个页面,增加不同的测试题,来测试下你的shell能力。 目录下有a.txt,b.txt,c.txt 把他们改名为a.txt.bak,b.txt.bak,c.txt.bak 在tmp目录下创建a0.txt,a1.txt,….a100.txt 递归删除/var/www目录下的所有“.svn”目录 查找并杀掉所有的nginx进程,进程名特征:“/usr/local/sbin/nginx” /var/log/wtmp文件过大了,需要清空这个文件,如何做? shell中有哪些特殊字符,以及他们的含义和应用场合。 文件权限位的含义,如权限为601是什么意思? bash下,命令行操作有哪些快捷键可以用?在哪里可以查到这些快捷键的说明? 如何定义函数,函数如何接受参数,返回值?

August 22, 2012 · notsobad

用nginx来反向代理appspot

appspot被墙,但是它的服务比自己搭服务器要方便的多,如果自己有vps的话,可以做一个反向代理过去,很简单,6行搞定。 自己在nginx中加一个vhost,绑定到自己的域名,然后反向代理到自己appspot的项目,配置如下: server { listen 80; server_name test.notsobad.me; location / { proxy_pass http://rm-rf-hrd.appspot.com; } } EOF. ...

August 15, 2012 · notsobad

lazy load google map

google map一般这样调用,引入的google的js文件,然后它内部会在引入其它js,网络条件不好的时候,会阻塞住浏览器 <script type="text/javascript" src="http://map.google.cn/maps/api/js?sensor=false"></script> <script> var draw_map = function(){ //.…. }; draw_map(); </script> 所以最好是用异步的方式,在需要的时候再载入地图的js文件,等地图所需js文件载入完毕后再调用自己的draw_map函数,google的api支持callback。 ...

August 14, 2012 · notsobad

非法url的http响应

两个现象 正常的http请求: wang@nb:/tmp$ nc 20.0.8.5 80 GET /abc HTTP/1.0 HTTP/1.1 404 NOT FOUND Server: nginx/1.0.6 Date: Fri, 10 Aug 2012 04:19:29 GMT Content-Type: text/html; charset=utf-8 Connection: close Vary: Accept-Language, Cookie Content-Language: zh-cn Set-Cookie: sessionid=981f6af6103261f552fe5a1ce4b5a90d; Path=/ <!DOCTYPE html> …… 如果请求的url不以/开头: wang@nb:/tmp$ nc 20.0.8.5 80 GET abc HTTP/1.0 <html> <head><title>400 Bad Request</title></head> <body bgcolor="white"> <center><h1>400 Bad Request</h1></center> <hr><center>nginx/1.0.6</center> </body> </html> 注意响应部分没有http头部。 如果用httplib来发一个这样的请求,会注意到响应码居然是200,这应该是httplib发现没有响应头,自己补的状态码。 ...

August 10, 2012 · notsobad

工作5年

2012.7月,我已经工作5年了。五年前我完全不知道以后会是什么样子,现在我也完全不知道5年后会是怎样。 2010.5月,在我工作快3年的时候,我离开了第一个公司,加入现在的公司。 2007.7月,毕业了,来到北京,第一次开始挣钱,第一次银行卡上有超过3位数的钱 ...

July 16, 2012 · notsobad