準備:python
git clone AITalkUat工程,在本地跑:nginx
能夠直接瀏覽器訪問127.0.0.1:5000()git
若是帶上參數,能夠獲得訪問的結果127.0.0.1:5000/autoservice?q=怎麼結算?n=0web
跑通了以後,由於要先在AITalkUat下測試,須要修改端口。flask
這裏插入一段接口的實現,由於在winServer下不能直接用flask部署,咱們須要安裝tornado。瀏覽器
在工程文件下,增長tornado_server.py,服務器
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from web_main import app
if __name__ == '__main__':
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000)#對應flask的端口
print('IOLoop.instance() start')
IOLoop.instance().start()
print('IOLoop.instance() end')
下面的端口5000改成5001。若是要添加定時任務,就新增tornado_server.bat,app
@echo oftornado
#這裏可能須要cd到工程目錄oop
start python tornado_server.py
exit
可是由於咱們在部署服務上,使用了win server wrapper部署,因此其實不須要這個bat文件
下面說怎麼部署
在部署以前,咱們須要在web_main.py裏,增長代碼
import os
os.chdir("D:/project/AITalkUat/app/")
指定程序運行的路徑,不然會出現加載字典路徑錯誤的狀況。
先把工程文件AITalk,複製到D:\project\AITalkUat\app目錄下,返回上一層目錄,發現咱們有寫好了一個.bat文件 installservice.bat,還有一個winsw-1.9-bin,和指定winsw運行的目標的xml配置文件,
配置好以後,點擊installservice,在服務器管理中,就會出現AITalkUat的服務,把這個服務啓動,本地就能夠訪問了。
若是再UAT測試好了,要更新到正式環境:
一、把AITalkUat複製過去,改一下端口,5000
二、在web_main裏增長
import os
os.chdir("D:/project/AITalk/app/")
三、手動重啓服務
四、接下在就在本地的瀏覽器測試。
http://127.0.0.1:5000/autoservice?q=小票機如何使用&n=1
複製find_question.py normalize.py simi_utils.py到服務器,並複製模型文件(可能要修改路徑),還有stopwords, keywords, useridct到服務器,重啓服務
=====================================================
若是須要遠程進行訪問,咱們直接kf.pospal.cn:5001並不能夠,須要在nginx當中配置,並使用命令nginx -t 檢查語法,而後nginx -reload ,reload並不會影響線上的服務,可是在工做時間段,仍是不要動。
至於怎麼配置,我在listen 80 default server下添加:
location/test {
proxy_pass http://localhost:5001;
}
嘗試使用反向代理訪問,但是出現404,問了bo哥之後,給出的答案是:
你說的nginx 配置問題是由於這個nginx是按照hostname來配置的。須要在對應的section(按照hostname去找)裏面去配置才能夠。
主要是看是否有經過hostname來配置
目前還沒徹底弄懂,備選方案是:
1、在listen 80下添加這個塊(非default server)
2、嘗試使用$host變量