@nnfish《Pylons 系列实例教程》五:发布应用
测试环境:Nginx 0.8.53 + FastCGI 模式 (需要安装 flup 模块)
pip install flup # easy_install -U flup
测试代码,延用前面的 Hello 示例。
mac:python smallfish$ paster create -t pylons hello mac:python smallfish$ cd hello/ mac:hello smallfish$ paster controller hi mac:hello smallfish$ paster serve --reload development.ini
确保以上过程无错,访问:http://127.0.0.1:5000 可以看到默认页面。
好把,开始配置发布环境。
需要修改 development.ini 配置文件,找到 [server:main] 节点,修改其中的 use 方式(默认是 egg:Paste#http)。
[server:main] use = egg:PasteScript#flup_fcgi_thread host = 0.0.0.0 port = 5000
另外建议修改 [DEFAULT] 节点中 debug = false,以免错误会打印具体的环境和堆栈信息。
到这里 Pylons 部分以及设置好了,如果出现一下错误:
LookupError: Entry point 'flup_fcgi_thread' not found in egg 'Paste'
请注意上面的 use 部分里是 PasteScript 而不是 Paste哦。淡定淡定,别光看后面的 http 改成 flup_fcgi_thread。
下面修改 Nginx 的配置 nginx.conf,修改其中 / 部分设置。
location / { fastcgi_pass 127.0.0.1:5000; fastcgi_index index; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; fastcgi_intercept_errors off; }
其中 fastcgi_pass 中 host 和 port 对应 development.ini 中的配置。
好把,这里可以启动,看看是否正确,请注意相应的目录。
启动 Pylons 部分(可以 nohup 或者 & 把进程放入后台,或参考搜狐邮箱使用的 zdaemon 来管理进程):
mac:hello smallfish$ paster serve --reload development.ini # 注意,正式环境中请去除 reload 参数
启动 Nginx 部分:
mac:~ smallfish$ sudo /opt/nginx/sbin/nginx
尝试一下访问: http://localhost/ 和 http://localhost/hi/index 。是不是都可以了?OK,到这里已经整合好了。
这里是采用 FastCGI 方式发布,当然还可以用默认 http 或者本地 socket 方式,然后通过 proxy_pass 方式转发过去也是可以的。
当然,这个只是简单示例,可能正式发布时候需要注意的事项比这个复杂的多。这里只是介绍一种方式而已。
希望通过这一系列的教程,希望能对喜欢 Python 和关注 Pylons 框架的朋友能有所帮助。
---
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。