windowsServer環(huán)境下的flask+nginx部署方案

前言
公司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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容