文档章节

nginx连接uwsgi使用web.py框架构造pythonweb项目

 跬步
发布于 2013/05/13 14:53
字数 420
阅读 1511
收藏 10

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

相关页面:
http://webpy.org/install
http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html
http://projects.unbit.it/uwsgi/wiki/Example
uwsgi的安装需要python-devel,可以使用yum search python-devel进行查找
没有的话可以到
http://www.rpmfind.net/进行相关rpm包进行查找

uwsgi安装:
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd <dir>
make
生成可执行的二进制文件uwsgi
文件位置:
mkdir /home/uwsgi
mv uwsgi /home/uwsgi/

web.py安装:
http://webpy.org/install
python setup.py install 在解压的tar包中进行安装

简单运行文件:
vim test.py :

/usr/bin/python
import web
urls=('/(.*)','hello')
app=web.application(urls,globals())
class hello:
    def GET(self,name):
        if not name:
            name='World'
        return 'Hello'+name+'!'    
application=app.wsgifunc()

 uwsgi启动方式:
/home/uwsgi/uwsgi --socket 127.0.0.1:9000 --chdir /home/project/maintence.xxx.xxx.com/ -w test
/home/project/maintence.xxx.xxx.com/目录为test.py所在目录

nginx配置:
server {
        listen  80;
        server_name  maintence.xxx.xxx.com;
        access_log  logs/access_maintence.xxx.xxx.com.log  main;
        error_log   logs/error_maintence.xxx.xxx.com.log   warn;
        root         /home/nginx/html/maintence.xxx.xxx.com;
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:9000;
        }
}

以上配置可以完成nginx-uwsgi的直连,使用web.py框架
uwsgi可以使用配置文件的方式进行配置:
<whousexml>
    <uwsgi id='e-commerce'>
        <socket>127.0.0.1:9000</socket>
        <chdir>%d/../src</chdir>
        <module>test</module>
        <master />
        <workers>4</workers>
        <cpu-affinity>2</cpu-affinity>
        <daemonize>%d/../log/uwsgi.log</daemonize>
        <pidfile>%d/../log/uwsgi.pid</pidfile>
    </uwsgi>
</whousexml>

启动方式:
uwsgi_home='/home/uwsgi'
service_home='/home/project/maintencexxx.xxx.com'
service_id='xxx'
$uwsgi_home/uwsgi --xml $service_home/conf/uwsgi.conf:$service_id
停止:
$uwsgi_home/uwsgi --stop $pid_file
reload:
$uwsgi_home/uwsgi --reload $pid_file

一个简单的启动脚本:

if [ `whoami` != appuser ]
then
    echo 'This script need appuser user'
    exit 1
fi
if [ $# -ne 1 ]; then
    echo "Usage:$0 {stop|start|restart|reload}"
    exit -1
fi
uwsgi_home='/home/uwsgi'
service_home='/home/project/maintence.xxx.xxx.com'
service_id='xxx'
pid_file=$service_home/log/uwsgi.pid
pid=$(cat $pid_file)

function start(){
    $uwsgi_home/uwsgi --xml $service_home/conf/uwsgi.conf:$service_id
}
function stop(){
    $uwsgi_home/uwsgi --stop $pid_file
    sleep 3
    ( netstat -tlunp | grep $pid | grep -q uwsgis ) 2> /dev/null
    if [ $? == 0 ];then
        kill -9 $pid
        sleep 1
    fi
}
function reload(){
    $uwsgi_home/uwsgi --reload $pid_file
}

case $1 in 
    stop)
        stop
    ;;
    start)
        start
    ;;
    restart)
        stop
        start
    ;;
    reload)
        reload
    ;;
esac





© 著作权归作者所有

粉丝 3
博文 15
码字总数 10527
作品 0
朝阳
私信 提问
ubuntu12.04 python2.7.3+uwsgi+nginx

通过自己的不断坚持的努力,终于找到了这个解决方案 因为我的是ubuntu12.04 所以python的版本默认是2.7.3 nginx是通过sudo apt-get isntall nginx安装的 uwsgi也是通过sudo apt-get install ...

durban
2012/05/20
2.8K
4
python + django + bootstrap + uWSGI + nginx 环境搭建

原文:http://www.huangdc.com/103 在了解 uWSGI 之前,我们不妨先了解一下 python http服务器? 要使 Python 写的程序能在 Web 上被访问,还需要搭建一个支持 Python 的 HTTP 服务器,列举几...

dchuang
2015/07/19
532
0
ubuntu部署django(nginx + uwsgi)

uwsgi 安装uwsgi: pip install uwsgi 安装uwsgi出现异常的参考https://www.jianshu.com/p/e0f11287a480 配置uwsgi,在项目中新建uwsgi.ini文件,并编写如下配置: [uwsgi] socket=外网ip:端...

冰封心动
07/22
0
0
Python-django-uwsgi-nginx环境

Ubuntu 环境搭建: ** linux 系统会自带python,一般不需要特定安装python.查看版本 sudo service nginx restart #重启nginxcd /var/www/projectNameuwsgi --stop uwsgi.pid #关闭原有的 uwsg...

青瓶冷水
2018/09/11
110
1
Ubuntu 下面部署Django 项目

django 是 python 开源的 web 框架 ,django 本身运行后也是一个轻量级的服务器,可以满足本地的测试,生产环境中的 大量访问, 一般和nginx 和 apache 结合。下面以 Django 与nginx 结合为例...

水滴石川1
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

sed -i linux 批量替换命令

批量替换 /usr/local/rocketmq/conf 目录下 的 xml 里头的 ${user.home} 替换为 /usr/local/rocketmq # mkdir -p /usr/local/rocketmq/logs# cd /usr/local/rocketmq/conf && sed -i 's#${......

jxlgzwh
28分钟前
4
0
如何在嵌入式CSS中编写a:hover?

我有一种情况,我必须编写内联CSS代码,并且我想在锚点上应用悬停样式。 如何在HTML样式属性内的CSS中使用a:hover ? 例如,您不能在HTML电子邮件中可靠地使用CSS类。 #1楼 简短的答案:您不...

技术盛宴
35分钟前
4
0
一些常用工具下载

golang: https://dl.google.com/go/go1.13.5.window-amd64.zip https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz 更换版本号可以下载其他版本。...

bobby2006
42分钟前
4
0
centos使用yum安装或者更新时总是提示被PackageKit占用

centos使用yum安装或者更新时总是提示被PackageKit占用 使用yum安装或更新软件时总是提示yum被PackageKit锁定占用 Existing lock /var/run/yum.pid: another copy is running as pid 13090. ...

流麦士
48分钟前
4
0
使用CSS内容添加HTML实体

如何使用CSS content属性添加html实体? 使用这样的东西只打印  到屏幕而不是不间断的空间: .breadcrumbs a:before { content: ' ';} #1楼 更新 :PointedEars提到正确的立...

javail
51分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部