77家的会客2010

ubuntu上配置nginx+uwsgi来跑web.py

同样,还是做为一个备忘吧,最基本的配置。web.py的安装就不说了

1.

如果安装了apache先要把apache的服务停止掉

service apache2 stop

2.安装nginx

sudo apt-get install nginx

3.安装uwsgi

sudo apt-get install uwsgi-core

4.配置uwsgi,/var/www/uwsgi_site1.ini

[uwsgi]
plugins = cgi
socket = 127.0.0.1:3333
chdir = /var/www/site1/
cgi = /=/var/www/site1/code.py
cgi-helper =.py=python

5.配置nginx 

root = /var/www/site1;

location / {
    include uwsgi_params;
    uwsgi_modifier1 9;
    uwsgi_pass 127.0.0.1:3333;
}

#静态文件处理
location /static/ {
    try_files $uri $uri/ /;
}

#disable execution of PHP in upload directory.
location /UserFiles {
    location ~ \.php$ { return 403; }
    expires max;
}

location ~* \.(jpg|jpeg|gif|png|ico|ttf)$ {
    access_log off;
    expires max;
}

6.重启nginx, service nginx restart

7.启动uwsgi 

uwsgi /var/www/uwsgi_site1.ini

好了,可以正常访问了,web.py的程序不需要任何改变。

如果你原来用的是apache+fastcgid的话只要把code.py的启动改成下面这样

 

最后,再说下nginx下用fastcgi跑php吧,别在百度搜那些破烂了,误人不倦,直接上官网,很简单的配置。

直接用php5-fpm来跑,具体配置看官网吧 http://wiki.nginx.org/PHPFcgiExample

 

---------------

再备忘一下web.py里使用jinja2模板时的模板全局变量以及在模板里调用cookie

template_globals = {
"cookies": web.cookies,
"logopath" : "/static/logo.png",
}
render = render_jinja(
'templates/',
globals=template_globals,
encoding = 'utf-8',
)

这样就可以直接在模板中使用了,全局变量 {{ logopath }},cookie的话,就可以 {{ cookies().get('itemname') }}了,很方便了

历史上的今天: [2005/12/22]大杂烩

[ubuntu上配置nginx+uwsgi来跑web.py]的回复

Post a Comment~