如何搭建go语言环境 如何搭建go语言环境文件系统( 三 )


python程式设计师喜欢发明轮子 , tornado除了是一个web framework之外,它还可以单独提供高效能
server,所以,如果你采用其他python框架写程式码,比如说bottle , 也一样可以通过import
tornado 来启动一个高效能的
server,同样的可以采用协议和nginx一起来部署 。扩充套件开来 , python包里面能处理高并发的
server还有很多,比如说gevent,也可以被其他框架引用来支援方式部署 。
现实当中,用java来做web程式,通常就用和nginx配合,应用伺服器选择tomcat或者jetty
uwsgi,包括4部分组成,
nginx从0.8.4开始内建支援uwsgi协议,uwsgi协议非常简单,一个4个位元组header+一个body , body可以是很多协议的
包 , 比如说,cgi等(通过header里面栏位标示),我曾经做个一个小规模的效能对比测试,结果表明,uwsgi和fastcgi相比 , 效能
没有太明显的优势,也可能是资料集较小的原因
uwsgi的特点在于自带的程序控制程式.它是用c语言编写 , 使用natvie函式,其实和spawn-fcgi/php-fpm类似 。所以uwsgi可以支援多种应用框架 , 包括(python,lua,ruby,erlang,go)等等
uwsgi协议
web server内建支援协议模组
application伺服器协议支援模组
程序控制程式
Gunicorn,和uwsgi类似的工具,从rails的部署工具(Unicorn)移植过来的 。但是它使用的协议是 WSGI , 全称是Python Web Server Gateway Interface  , 这是python2.5时定义的官方标准(PEP 333 ),根红苗正,而且部署比较简单,:gunicorn./ 上有详细教程
mod_wsgi,apache的一个module,也是支援WSGI协议,:code.google./p/modwsgi/
如何部署简单python + flask应用
python是一款应用非常广泛的指令码程式语言,谷歌公司的网页就是用python编写 。python在生物资讯、统计、网页制作、计算等多个领域都体现出了强大的功能 。python和其他指令码语言如java、R、Perl 一样,都可以直接在命令列里执行指令码程式 。
所需工具:
python3.4
flask
nginx
gunicorn
supervisor
系统环境:
Ubuntu 14.04LTS
我们先写一个最基本的flask应用:
demo.py
from flask import Flask
app = Flask(**name**)
@app.route('\')
def index():
return 'Hello World.'
if __name__ == __main__:
app.run()
执行这个py档案,开启浏览器访问127.0.0.1:5000就能看到显示Hello World的页面 .
如果让这个flask引用监听来自公网ip的请求,理论上你跑此程式的机器就相当于一个伺服器了,然而这个伺服器并不完美,所以我们需要nginx和gunicorn来增加它的功能,让它真刀真枪上生产环境的时候能按要求执行 。
flask自带的WSGI框架效能很差劲,只能适用于开发环境除错使用 。我们用专业一点的gunicorn(还有很多其他优秀的框架)替代flask自带的WSGI框架 。
配置完后,通过命令’/usr/local/bin/gunicorn -b127.0.0.1:5000‘启动应用 。开启浏览器访问127.0.0.1:5000,同样能够得到返回页面
然而gunicorn也仅仅是一个python的WSGI框架而已,要让它真正处理来自网际网路的各类访问功能还是有点欠缺,这时候就需要用到大名鼎鼎的nginx 伺服器来替gunicorn遮风挡雨了 。
Ubuntu下安装nginx可以用命令
sudo apt-get install nginx
安装后需要进行下配置:
cd /etc/nginx/sites-available
sudo vi test (test为配置名称,可以根据自己专案进行命名)
test档案的配置为:
server {
listen 80; # 监听80埠
location / {
proxy_pass :127.0.0.1:5000; # 代理本机127.0.0.1:5000的服务
}

推荐阅读