文档章节

nginx+python的搭建方法--uwsgi (继续进阶)

深蓝苹果
 深蓝苹果
发布于 2013/12/31 13:40
字数 425
阅读 1362
收藏 12

nginx+uwsgi 安装
-------------------------
1.编译
到这里下载  http://projects.unbit.it/downloads/

-------以0.9.6.8版本为例 
tar xzvf uwsgi-0.9.6.8.tar.gz  
cd uwsgi-0.9.6.8  
make  
cp uwsgi /usr/bin

2.配置nginx转发规则
在nginx配置文件的server段中,加上配置

# 把所有请求都重定向给uwsgi处理  
location / {    
  include uwsgi_params    
  uwsgi_pass 127.0.0.1:9090    
}

# 将指定的url重定向个uwsg的 
location ^~ /your_dir/your_cgi {  
  include uwsgi_params    
  uwsgi_pass 127.0.0.1:9090    
}

3.运行uwsgi

执行
uwsgi -s :9090 -w your_app_file


-------------------------示例的内容可以是:
#!/usr/bin/python 
#hello.py 

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()
nginx配置
location ^~ /eventlet/cgi { 
                include uwsgi_params; 
                uwsgi_pass 127.0.0.1:9090; 
            }
nginx重启

启动:
uwsgi --socket myapp.cgi -s :9090   --w myapp.cgi

访问:

curl http://localhost/eventlet/myapp

------------------ 获取请求中的数据

import sys

def read_obj(env): 
    if 'wsgi.input' in env: 
        return env['wsgi.input'] 
    else: 
        return sys.stdin

#获取HTTP POST数据
def get_http_post_data(env):
     content_length = int(env['CONTENT_LENGTH'])
     buf = read_obj(env).read(content_length)  #buf就是post的参数,当然还是个字符串
     return buf


#获取HTTP GET数据
def get_http_get_data(env):
     buf = env['QUERY_STRING']
     return buf

def application(env, start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    
    http_post_data = get_http_post_data(env)
    http_get_data = get_http_get_data(env)
  
    return '' #这个示例不在乎返回信息


----------------------------进一步

返回格式化的数据示例:

import sys,json

def read_obj(env): 
    if 'wsgi.input' in env: 
        return env['wsgi.input'] 
    else: 
        return sys.stdin

#获取HTTP POST数据
def get_http_post_data(env):
     content_length = int(env['CONTENT_LENGTH'])
     buf = read_obj(env).read(content_length)  #buf就是post的参数,当然还是个字符串
     return buf

#获取HTTP GET数据
def get_http_get_data(env):
     buf = env['QUERY_STRING']
     return buf
    

def application(env, start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    
    http_post_data = get_http_post_data(env)
    http_get_data = get_http_get_data(env)
  
    #返回格式化数据,json很好用:-)
    reply_json = {'code':0,'msg':'this is a demo return str'}
    return json.dumps(reply_json)



© 著作权归作者所有

深蓝苹果
粉丝 33
博文 95
码字总数 32473
作品 0
深圳
程序员
私信 提问
Linux搭建Python web环境(nginx + flask + uwsgi)

去年的时候,就曾使用Nginx+Flask+uwsgi搭建过python的web环境。但在最近搭建的时候,又去网上找了一遍教程,所以打算写一篇笔记做下记录。 在搭建之前,有必要了解下发送一个请求的整个流程...

liuchungui
2018/05/14
0
0
linux下nginx+python+uwsgi部署总结(django+web.py)

之前的文章已经提到了 django+fastcgi的运行并不如意(web.py+spawn-fcgi却正常很多……),所以特意抽时间研究了一下uwsgi,试了一下,运行的很好,也很快,哈哈。 所以笔者的所有之前用apa...

岭南六少
2011/08/11
2.1K
1
flask+uwsgi+supervisor+nginx在局域网服务器上部署实践

flask可以快速的搭建http服务,但是为了搭建网站还是需要web服务器和相关监控管理操作,一套flask、uwsgi、supervisor、nginx是较好的完整解决方案。 本文对自己学习做一个记录,以一个简单的...

zoulala
2018/09/05
159
0
python + django + bootstrap + uWSGI + nginx 环境搭建

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

dchuang
2015/07/19
495
0
Python-django-uwsgi-nginx环境

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

青瓶冷水
2018/09/11
73
1

没有更多内容

加载失败,请刷新页面

加载更多

浅谈prototype原型模式

一、原型模式简介 原型(Prototype)模式是一种对象创建型模式,他采取复制原型对象的方法来创建对象的实例。使用原型模式创建的实例,具有与原型一样的数据。 原型模式的特点: 1、由原型对...

青衣霓裳
2分钟前
1
0
shell mysql 备份

#!/bin/bash time2=$(date "+%Y-%m-%d-%H:%M:%S") /usr/local/mysql/bin/mysqldump -uroot -p ad > /usr/local/mysql/backup/"$time2".sql 变量引用原来是这么用的。......

奋斗的小牛
10分钟前
2
0
Jmeter监控Linux服务器操作

系统:Win7 64位 工具:Jmeter 4.0 要准备好的插件:JMeterPlugins-Standard-1.4.0,ServerAgent-2.2.1 解压JMeterPlugins-Standard-1.4.0.zip,将其中\lib\ext\JMeterPlugins-Standard.jar......

魔鬼妹子
10分钟前
2
0
系列文章:云原生Kubernetes日志落地方案

在Logging这块做了几年,最近1年来越来越多的同学来咨询如何为Kubernetes构建一个日志系统或者是来求助在这过程中遇到一系列问题如何解决,授人以鱼不如授人以渔,于是想把我们这些年积累的经...

Mr_zebra
11分钟前
1
0
入门必备!快速学会用Aspose.Words在表格中插入和删除列!

Aspose.Words For .Net(点击下载)是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft W...

mnrssj
16分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部