`
sogo6
  • 浏览: 113278 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Webpy + Nginx with FastCGI搭建Web.py

阅读更多
这一节讲解的是如何使用Nginx和FastCGI搭建Web.py应用

环境依赖的软件包
引用
Nginx 0.8.* or 0.7.* (需要包含fastcgi和rewrite模块)。
Webpy 0.32
Spawn-fcgi 1.6.2
Flup

注意:Flup是最常见的忘记装的软件,需要安装

更老的版本应该也可以工作,但是没有测试过,最新的是可以工作的

一些资源
Nginx wiki
Spawn-fcgi
Flup
Notes
你可以重命名index.py为任何你想要的文件名。
/path/to/www 为代码路径。
/path/to/www/index.py为python代码的完整路径。
Nginx 配置文件
location / {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;  # [1]
    fastcgi_param PATH_INFO $fastcgi_script_name;        # [2]
    fastcgi_pass 127.0.0.1:9002;
}

对于静态文件可以添加如下配置:

location /static/ {
    if (-f $request_filename) {
    rewrite ^/static/(.*)$  /static/$1 break;
    }
}

注意: 地址和端口号可能会是不同的。

Spawn-fcgi
可以通过一下命令启动一个Spawn-fcgi进程:

spawn-fcgi -d /path/to/www -f /path/to/www/index.py -a 127.0.0.1 -p 9002

启动和关闭的命令
启动:

#!/bin/sh
spawn-fcgi -d /path/to/www -f /path/to/www/index.py -a 127.0.0.1 -p 9002

关闭:

#!/bin/sh
kill `pgrep -f "python /path/to/www/index.py"`

Note: 你可以随意填写地址和端口信息,但是一定需要和Nginx配置文件相匹配。

Hello world!
讲下面的代码保存为index.py(或者任何你喜欢的),注意,使用Nginx配置的话,web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)这一行代码是必须的。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import web

urls = ("/.*", "hello")
app = web.application(urls, globals())

class hello:
    def GET(self):
        return 'Hello, world!'

if __name__ == "__main__":
    web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
    app.run()

注意: 同样需要给代码设置权限,代码如下chmod +x index.py。

运行
打开一个 spawn-fcgi 进程.
打开 Nginx.
如果需要检查应用程序是否运行,使用ps aux|grep index.py可以很容易的查看。

重启nginx配置:

/path/to/nginx/sbin/nginx -s reload

停止nginx:

/path/to/nginx/sbin/nginx -s stop

注意:运行后可访问http://localhost访问网站,更多信息可以去参考nginx官方文档。
分享到:
评论

相关推荐

    web.py教程

    2. 通过Webpy和Nginx with FastCGI搭建Web.py:讲解如何使用web.py通过Webpy和Nginx with FastCGI搭建Web.py 3. 通过Apache和mod_wsgi部署:展示如何使用web.py通过Apache和mod_wsgi部署 4. 通过Nginx和mod_wsgi部署...

    Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服务器

    在本教程中,我们将探讨如何使用CentOS 5.4操作系统,配合Nginx 0.8.50,uWSGI 0.9.6.2和Django 1.2.3来构建高性能的Web服务器。这个组合是基于Python的Web应用程序部署的常见选择,因为它能够提供高速度、稳定性和...

    web.py中文教程

    2. **通过Webpy和Nginx with FastCGI搭建Web.py**: 使用Nginx和FastCGI技术部署web.py。 3. **CGI deployment through Apache**: 通过Apache进行CGI部署。 4. **mod_python deployment through Apache**: 通过mod_...

    web.py flup

    3. 配置服务器:根据你的Web服务器(如Apache或Nginx),配置FastCGI监听端口和路径,将请求转发给flup运行的Web应用。 【集成使用】 结合web.py和flup,你可以创建高性能的Python Web服务。首先,使用web.py编写你...

    Webpy-coobook-pdf中文教程

    - **通过Webpy和Nginx with FastCGI搭建Web.py**:说明如何使用Nginx和FastCGI来部署web.py应用。 - **通过Apache和mod_wsgi部署**:介绍如何使用Apache和mod_wsgi来部署web.py应用。 - **mod_wsgi deployment ...

    web.py官方文档

    这部分内容讲解了如何使用FastCGI部署Web.py应用,特别是如何与nginx和Gunicorn一起使用,以及如何配置lighttpd来作为Web服务器。此外,文档还简要介绍了Web.py API,包括web.application、web.db、***等模块。 ...

    Linux系统上Nginx+Python的web.py与Django框架环境

    fastcgi_pass unix:/path/to/webpy.sock; # Unix socket方式 fastcgi_param REQUEST_METHOD $request_method; fastcgi_param QUERY_STRING $query_string; fastcgi_param CONTENT_TYPE $content_type; ...

    在Windows系统上搭建Nginx+Python+MySQL环境的教程

    在Windows系统上搭建一个Nginx、Python和MySQL的环境是一项常见的任务,尤其对于开发Web应用来说至关重要。本文将详细讲解如何一步步实现这个环境的构建。 首先,我们需要安装Nginx,这是一个高性能的Web服务器,它...

    flup-py3-master

    总结来说,“flup-py3-master”项目是一个为Python 3编写的Flup库的分支,旨在帮助开发者在Nginx环境中利用FastCGI协议部署和运行Python Web应用。这个项目可能包含了源代码、测试、文档和安装脚本,便于用户理解和...

    Windows系统下使用flup搭建Nginx和Python环境的方法

    本文主要介绍如何在Windows系统环境下,利用Flup这一Python FastCGI工具,搭建Nginx和Python开发环境的过程。这对于希望在Windows平台上进行Web开发的用户来说是一个非常实用的指南。 #### 二、准备工作 在开始...

    网络编程技术:第5章 Python Web编程(1).pptx

    FastCGI进程管理器(如mod_fastcgi for Apache或Nginx的fastcgi_pass)负责创建和管理一组长期运行的进程,以接收和处理来自Web服务器的请求,降低了每次请求的启动时间。 WSGI(Web Server Gateway Interface)是...

    uwsgiit-py-源码.rar

    uwsgiit-py-源码.zip 是一个包含Python源代码的压缩文件,它很可能与uWSGI服务有关。uWSGI是一个广泛使用的Web服务器网关接口(WSGI)应用服务器,用于部署和运行Python web应用程序。它不仅支持WSGI协议,还支持...

    用uWSGI和Nginx部署Flask项目的方法示例

    ### 使用uWSGI与Nginx部署Flask项目详解 #### 概述 在Web开发领域,Flask作为一款轻量级的Web框架,因其简洁的设计理念和灵活的应用场景而备受开发者青睐。然而,在实际生产环境中,直接通过Python内置的简单HTTP...

    Windows操作系统上各种Web服务器搭配各种模块部署Django的方法

    另外,还提到了使用 LightTPD 和 Nginx 作为 Web 服务器的可能性。 #### 总结 本文全面地介绍了在 Windows 操作系统上使用不同 Web 服务器和模块部署 Django 应用程序的方法。从运行环境的准备到具体组件的安装与...

    flup安装包

    在实际部署中,你需要将这个FastCGI服务器连接到你的Web服务器,如Apache或Nginx。Web服务器配置会因服务器类型而异,但通常涉及设置一个反向代理来将HTTP请求转发给FastCGI服务。 总的来说,Flup是Python开发人员...

    flup-1.0.1

    例如,如果你有一个名为`app.py`的简单Web应用,你可以使用Flup将它包装成FastCGI服务: ```python from flup.server.fcgi_wsgi import WSGIServer from myapp import app if __name__ == '__main__': WSGIServer...

    详解使用Nginx和uWSGI配置Python的web项目的方法

    本文将详细介绍如何使用Nginx和uWSGI来配置Python Web项目,这两种工具结合使用能提供高效、稳定的服务。uWSGI是一种高性能的应用服务器,而Nginx则是一款强大的反向代理服务器,它们共同工作能够优化Web应用的性能...

    windows环境下reviewboard全安装包及详细安装教程

    - ReviewBoard可以与Apache或Nginx等Web服务器配合使用,提供更高效的服务。你需要根据你的Web服务器类型,配置适当的WSGI或FastCGI模块。 7. **启动ReviewBoard**: - 使用`manage.py`脚本启动开发服务器,或者...

Global site tag (gtag.js) - Google Analytics