分享

Python Web 编程(一)Nginx mod

 londonKu 2012-09-04

近来想用 Python 做个小应用,一来方便自己使用,二来也当 Python 练手。

从来没用 Python 做过 Web 应用,在网上摸索了几天,决定从比较基础的 wsgi 开始。花了两天的业余时间把 wsgi 的规范读了读,又在网上看了些东东,今天从搭建服务器环境开始。

刚好自己也正在使用 Nginx,所以自然选择了 Nginx 上的 mod_wsgi 模块。要注意的一点是 mod_wsgi 虽然和 Apache 上的模块 mod_wsgi 名字相同,但是却是不同的人写的不同的产品。比较奇怪他们为什么不换个名字,这样很容易混淆。
闲话少叙,转入正题。

1,代码下载
由于 mod_wsgi 不是 Nginx 的标准模块,所以不能直接插在我以前通过 apt-get 装在服务器上的 Nginx 上使用。没办法,重新下载原代码,从编译开始。Nginx 使用最新的稳定版1.0.8,mod_wsgi 直接从代码库里克隆最新版出来。

wget http:///download/nginx-1.0.8.tar.gz
tar -zxvf nginx-1.0.8.tar.gz
hg clone http:///lifeeth/mod_wsgi/

 
这样代码就已经准备好了。

2,编译安装
然后转到 Nginx 的代码目录下进行配置编译安装。遵照 mod_wsig 的文档指示做下来。

./configure --add-module=/path-to-mod_wsgi --with-debug
make
make install

在这个过程中有个小插曲。在进行配置的时候,提示我 PCRE 包没有安装。Google之,发现是一个处理正则表达式的包。遂安装之。

apt-get update
apt-get install libpcre3 libpcre3-dev

安装好这个 PCRE 包之后再重新执行前面的配置编译命令,一切正常。这个 Nginx 被默认安装到了 /usr/local/nginx 目录下。现在只是做试验用,暂且放在这里吧。

3,配置运行
安装好后,先执行 mod_wsgi 中的配置程序 setup.py。它会帮你把一些文件拷贝到它们该在的位置。
mod_wsgi 本身带了一些示例,全部放在代码的 examples 目录中。配置文件也有一个示例在这个目录中就叫做 nginx.conf。
把这些示例以及配置文件一古脑拷贝到 Nginx 的安装目录(/usr/local/nginx)下。然后启动之。
需要注意的是,自带的示例配置文件中的一些配置文件的目录都是采用了相对路径,所以不可以放在默认的用来放配置文件的路径 /usr/local/nginx/conf 下。 而是要直接放在 /usr/local/nginx 下面就好了。(其实还是自己太懒,配置文件都没改,先拿来用下好了。)这样导致等下启动 Nginx 的时候需要指明配置文件的位置。

./nginx -c /usr/local/nginx/nginx.conf

服务器启动之后,访问一下 http://myhost:myport/,直接给我一个 500 Internal Server Error。晕倒,赶快看日志,原来是在加载一个叫做 nginx_module 的模块时没有找到,出错了。原来这个模块的代码就在示例代码里面。拷贝到 Python 的路径下后,问题解决。
再次访问 http://myhost:myport/ 时,已经可以得到

Hello nginx!, by mod_wsgi

的页面了。
再试下访问 http://myhost:myport/wsgi 时,页面上会给出包括 HTTP 请求以及系统中的各个参数。
今天大功告成!明天再继续研究 Python 的 Web 编程。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多