前言
公司APP和網(wǎng)站后臺用的是nginx+tomcat的java環(huán)境,微信公眾號后臺用的Flask的python框架。到百度找資料,沒發(fā)現(xiàn)有在WindowsServer 環(huán)境下的nginx + flask 的教程,谷歌了一下,發(fā)現(xiàn)了這個 :http://www.rookiefly.cn/detail/46
部署環(huán)境
? winserver2012/MacOS 10.12
? python3.4
? nginx1.6.3
? tornado
? IDE: PyCharm
過程
1.下載及配置nginx
直接在nginx官網(wǎng)即可下載到nginx服務(wù)器,我用的版本是1.6.3.下載后直接把它解壓,文件夾重命名為nginx,然后把它放到c盤根目錄下。
最好是在命令提示符下運行 nginx.exe,界面一閃而過,有同學可能
以為沒啟動,其實已經(jīng)啟動了,在任務(wù)管理器中查看,確實是啟動了.
命令如下:
cd C:/nginx
nginx.exe
如果啟動不報錯,那么說明nginx啟動成功
再編輯配置文件C:/nginx/conf/nginx.conf,搜索http{},在http{}中加入如下配置信息:
upstream testserver {
server 127.0.0.1:5000;
# server 127.0.0.1:5001;
# server 127.0.0.1:5002;
# ...
# 可加入多個,由 nginx 負責負載均衡
}
server {
listen 80;
# 這里填寫你自己的域名(或者ip)
server_name www.rookiefly.me;
charset utf-8;
location / {
proxy_pass http://testserver;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass_header Set-Cookie;
}
}
如果不做負載均衡的話,可以直接用以下配置
server {
listen 80;//監(jiān)聽那個端口
# listen somename:8080;
server_name 139.224.130.2xx;//這里是你服務(wù)器的域名或者IP
location / {
proxy_pass http://127.0.0.1:5000;//轉(zhuǎn)發(fā)到那個端口
}
}
保存后再啟動nginx,如果不報錯說明配置成功。
2.用tornado架起flask app
如果你沒有安裝tornado,那么先安裝它:
pip install tornado
由于tornado的某些應(yīng)用使用了pycurl,為了防止出現(xiàn)莫名其妙的bug,推薦安裝:
pip install pycurl
然后在你的flask app根目錄中 寫入如下代碼:(文件目錄別錯了)
1.Flask的入口程序為run.py,代碼如下:
#coding=utf-8
#!/usr/bin/python
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def home():
return '<h1>Home</h1>'
if __name__ == '__main__':
app.run()
以上代碼僅供測試
2.在run.py的同級目錄添加tornado應(yīng)用程序tornado_server.py來托管run.py,代碼如下:
#coding=utf-8
#!/usr/bin/python
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from run import app#這里要和run.py對應(yīng)
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000) #flask默認的端口
IOLoop.instance().start()
3.如果直接運行python tornado_server.py會正常運行,輸出如下:
- Running on http://127.0.0.1:5000/
- Restarting with reloader
正常流程如下
開啟nginx服務(wù)器,運行flask app
cd C:/nginx
nginx.exe
python tornado_server.py
訪問你的域名或者IP進行測試
參考資料:
將Flask應(yīng)用程序部署在nginx,tornado的簡單方法
http://www.cnblogs.com/kiddy/p/5749687.html
windows的flask部署方案一:flask+nginx
http://www.rookiefly.cn/detail/46