nginx mod_wsgi安装配置笔记

做个笔记,防止忘记。
安装环境: ubuntu8.04
首先确定有了python的头文件(/usr/include/python2.5),没有的话apt一下:)
sudo apt-get install python2.5-dev
1.nginx安装
$ ./configure --add-module=/path/to/mod_wsgi/ --prefix=/usr/local/nginx
$ make && make install

2.mod_wsgi安装
$ cd mod_wsgi-0.0.6/
$ sudo python setup.py --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf --sbin-path=/usr/local/nginx/sbin

3.打开/usr/local/nginx/conf/nginx.conf

user nobody; #工作进程属主
worker_processes 2; #工作进程,一般的等于CPU核数
daemon off;
master_process on;

error_log logs/error.log info;
pid logs/nginx.pid;

events {
use epoll; #linux2.6+
worker_connections 1024; # 每个工作进程允许最大的同时连接数
}


env HOME;
#可以将你的project加入python的sys.path
env PYTHONPATH=/path/to/your/project;
#解决python执行egg包的权限问题
env PYTHON_EGG_CACHE=/tmp;

http {
include conf/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_port - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

gzip off;
#ssl on;
#ssl_certificate conf/server.crt;
#ssl_certificate_key conf/server.key;

wsgi_python_optimize 2;
wsgi_python_executable /usr/bin/python;
#wsgi_python_home /usr;
#wsgi_enable_subinterpreters on;

server {
listen 80;
server_name localhost;


include conf/wsgi_vars;

#wsgi_middleware wsgiref.validate validator;
#wsgi_middleware paste.lint;

location / {
#client_body_buffer_size 50;
#你的 module path 和 WSGI application 的名称,默认是application, 我这里用的是mod_wsgi自带的examples。
wsgi_pass /your/path/to/examples/nginx.py;

wsgi_pass_authorization off;
wsgi_script_reloading on;
wsgi_use_main_interpreter on;
}

location /wsgi {
#client_body_buffer_size 50;
wsgi_var TEST test;
wsgi_var FOO bar;
wsgi_var EMPTY "";
# override existing HTTP_ variables
wsgi_var HTTP_USER_AGENT "nginx";
wsgi_var HTTP_COOKIE $http_cookie;

wsgi_pass /your/path/to/examples/nginx-2.py main;

wsgi_pass_authorization on;
wsgi_script_reloading off;
wsgi_use_main_interpreter on;
}
}
}

4.启动nginx:
$ cd /usr/local/nginx
$ sudo sbin/nginx -c conf/nginx.conf
5.打开浏览器,输入http://127.0.0.1/wsgi/ 输出如下内容:
Environment:
{'FOO': 'bar',
'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'HTTP_ACCEPT_CHARSET': 'gb2312,utf-8;q=0.7,*;q=0.7',
'HTTP_ACCEPT_ENCODING': 'gzip,deflate',
'HTTP_ACCEPT_LANGUAGE': 'zh-cn,zh;q=0.5',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_HOST': '127.0.0.1',
'HTTP_KEEP_ALIVE': '300',
'HTTP_USER_AGENT': 'nginx',
'PATH_INFO': '/',
'SCRIPT_NAME': '/wsgi',
'TEST': 'test',
'wsgi.errors': <ngx_wsgi.Log object at 0xb7c1b050>,
'wsgi.input': <cStringIO.StringI object at 0xb7c5c4d0>,
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}

sys.argv:
sbin/nginx
-c
conf/nginx.conf
sys.path:
/usr/local/nginx/sbin
/usr/lib/python2.5/site-packages/ipython-0.8.4-py2.5.egg
/usr/lib/python2.5/site-packages/flup-1.0-py2.5.egg
/usr/lib/python2.5/site-packages/DBUtils-0.9.4-py2.5.egg
/usr/lib/python2.5/site-packages/zope.interface-3.4.1-py2.5-linux-i686.egg
/usr/lib/python2.5/site-packages/mercurial-1.0.1-py2.5-linux-i686.egg
/usr/lib/python2.5/site-packages/python_memcached-1.43-py2.5.egg
/usr/lib/python2.5/site-packages/bsddb3-4.7.1-py2.5-linux-i686.egg
/home/bob/projects/passport/trunk/country_cn/apps
/usr/lib/python25.zip
/usr/lib/python2.5
/usr/lib/python2.5/plat-linux2
/usr/lib/python2.5/lib-tk
/usr/lib/python2.5/lib-dynload
/usr/local/lib/python2.5/site-packages
/usr/lib/python2.5/site-packages
/usr/lib/python2.5/site-packages/Numeric
/usr/lib/python2.5/site-packages/PIL
/usr/lib/python2.5/site-packages/gst-0.10
/var/lib/python-support/python2.5
/usr/lib/python2.5/site-packages/gtk-2.0
/var/lib/python-support/python2.5/gtk-2.0
/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode
sys.stderr:
<ngx_wsgi.Log object at 0xb7c1b070>
pid:
6384
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值