这一节讲解的是如何使用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官方文档。
分享到:
相关推荐
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部署...
在本教程中,我们将探讨如何使用CentOS 5.4操作系统,配合Nginx 0.8.50,uWSGI 0.9.6.2和Django 1.2.3来构建高性能的Web服务器。这个组合是基于Python的Web应用程序部署的常见选择,因为它能够提供高速度、稳定性和...
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_...
3. 配置服务器:根据你的Web服务器(如Apache或Nginx),配置FastCGI监听端口和路径,将请求转发给flup运行的Web应用。 【集成使用】 结合web.py和flup,你可以创建高性能的Python Web服务。首先,使用web.py编写你...
- **通过Webpy和Nginx with FastCGI搭建Web.py**:说明如何使用Nginx和FastCGI来部署web.py应用。 - **通过Apache和mod_wsgi部署**:介绍如何使用Apache和mod_wsgi来部署web.py应用。 - **mod_wsgi deployment ...
这部分内容讲解了如何使用FastCGI部署Web.py应用,特别是如何与nginx和Gunicorn一起使用,以及如何配置lighttpd来作为Web服务器。此外,文档还简要介绍了Web.py API,包括web.application、web.db、***等模块。 ...
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的环境是一项常见的任务,尤其对于开发Web应用来说至关重要。本文将详细讲解如何一步步实现这个环境的构建。 首先,我们需要安装Nginx,这是一个高性能的Web服务器,它...
总结来说,“flup-py3-master”项目是一个为Python 3编写的Flup库的分支,旨在帮助开发者在Nginx环境中利用FastCGI协议部署和运行Python Web应用。这个项目可能包含了源代码、测试、文档和安装脚本,便于用户理解和...
本文主要介绍如何在Windows系统环境下,利用Flup这一Python FastCGI工具,搭建Nginx和Python开发环境的过程。这对于希望在Windows平台上进行Web开发的用户来说是一个非常实用的指南。 #### 二、准备工作 在开始...
FastCGI进程管理器(如mod_fastcgi for Apache或Nginx的fastcgi_pass)负责创建和管理一组长期运行的进程,以接收和处理来自Web服务器的请求,降低了每次请求的启动时间。 WSGI(Web Server Gateway Interface)是...
uwsgiit-py-源码.zip 是一个包含Python源代码的压缩文件,它很可能与uWSGI服务有关。uWSGI是一个广泛使用的Web服务器网关接口(WSGI)应用服务器,用于部署和运行Python web应用程序。它不仅支持WSGI协议,还支持...
### 使用uWSGI与Nginx部署Flask项目详解 #### 概述 在Web开发领域,Flask作为一款轻量级的Web框架,因其简洁的设计理念和灵活的应用场景而备受开发者青睐。然而,在实际生产环境中,直接通过Python内置的简单HTTP...
另外,还提到了使用 LightTPD 和 Nginx 作为 Web 服务器的可能性。 #### 总结 本文全面地介绍了在 Windows 操作系统上使用不同 Web 服务器和模块部署 Django 应用程序的方法。从运行环境的准备到具体组件的安装与...
在实际部署中,你需要将这个FastCGI服务器连接到你的Web服务器,如Apache或Nginx。Web服务器配置会因服务器类型而异,但通常涉及设置一个反向代理来将HTTP请求转发给FastCGI服务。 总的来说,Flup是Python开发人员...
例如,如果你有一个名为`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项目,这两种工具结合使用能提供高效、稳定的服务。uWSGI是一种高性能的应用服务器,而Nginx则是一款强大的反向代理服务器,它们共同工作能够优化Web应用的性能...
- ReviewBoard可以与Apache或Nginx等Web服务器配合使用,提供更高效的服务。你需要根据你的Web服务器类型,配置适当的WSGI或FastCGI模块。 7. **启动ReviewBoard**: - 使用`manage.py`脚本启动开发服务器,或者...