使用nginx web服务器,但是windows下无法使用gunicorn和uwsgi,所以使用tornado充当wsgi,转载flask开发的应用。
1. 下载windows版的nginx程序并解压。利用cmd进入目录后输入:
start nginx.exe
即可启动nginx服务器。启动后在浏览器中输入http://localhost会显示nginx的欢迎画面。
如果未显示说明80端口被其它应用占用了。
其他常用的命令有:
nginx.exe -s quit #停止服务
nginx.exe -s stop #停止服务
nginx.exe -s reload #重启服务
2. 构建项目myflask
项目结构如下:
app.py为使用flask写的应用,server.py为使用tornado搭建的“容器”。
app.py源码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello flask'
server.py源码:
from tornado.httpserver import HTTPServer
from tornado.wsgi import WSGIContainer
from app import app
from tornado.ioloop import IOLoop
s = HTTPServer(WSGIContainer(app))
s.listen(9900)
IOLoop.current().start()
tornado负责监听9900端口。
3. 修改nginx的配置文件nginx.conf(在解压目录下的conf子文件夹下):
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://localhost:9900;
}
....其他配置信息
}
修改location / 块中的内容,添加一行proxy_pass,则将访问localhost:80的请求全部转发到localhost:9900端口,也就是tornado监听的端口。
4. 重启nginx服务器,在浏览器中输入http://localhost会显示hello flask字样。
根据nginx.conf,如果输入http://127.0.0.1,会显示nginx的欢迎画面,输入http://127.0.0.1:9900会显示hell flask字样。可以根据需要继续修改nginx.conf达到自己想要的效果。