网上的教程很垃圾,现自己写一份
其实我也写的很垃圾,同事怎么也搭不起环境,原因是如果安装好nginx,那么nginx和uwsgi之间用socket通信,文章中的
uwsgi --http :5000 --ini uwsgi_conf.ini -d ./uwsgi.log --pidfile=uwsgi.pid不应该去盲目测试,应该用
uwsgi --ini uwsgi_conf.ini -d ./uwsgi.log启动uwsgi
一、安装uwsgi,安装之前应该有python2.7,还有安装了pip,之前要用tensorflow和syntaxnet,环境已经有了。 sudo pip install uwsgi 安装flask sudo pip install flask二、我们写一个test.py的测试程序,放在自己的用户下也行,比如我放在py用户下py@ubuntu:~$ lsDesktop ma Public test.py uwsgi.pidDocuments models syntaxnet-wrapper test.pyc VideosDownloads Music Templates tfsegfault.txtexamples.desktop Pictures tensorflow uwsgi_conf.inipython程序内容#coding=utf-8from flask import Flaskapp = Flask(__name__)@app.route('/')def index(): return 'Hello World!'if __name__ == '__main__': app.run(host="127.0.0.1", port=5000,debug=True)以下粗体先不要测试,否则从nginx到uwsgi跑不能!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!三、使用http协议启动uwsgi先编写一个uwsgi_conf.ini文件,内容如下:[uwsgi]socket = 127.0.0.1:5000 processes = 4 threads = 2 master = truepythonpath = /home/py/testmodule = testcallable = appmemory-report = true应用程序要托管,需要告诉uwsgi应用程序的位置,用pythonpath = /home/py/test指明当前应用程序的项目路径,module指明uwsgi需要托管的主程序文件名,callable就是在应用程序中指明的uwsgi需要调用的应用程序,在程序中是app = Flask(__name__),因此callable指定为app. socket是uwsgi 进行socket通信的端口.执行命令: uwsgi --http :5000 --ini uwsgi_conf.ini -d ./uwsgi.log --pidfile=uwsgi.pid–http指定用5800端口启动http协议–ini 指定上述的启动配置文件-d指定uwsgi的log,方便我们调试–pidfile将启动的进程号写到uwsgi.pid文件中,方便我们在需要停止服务器时kill掉启动后查看uwsgi.log,如果一切正常,就在浏览器内访问:http://127.0.0.1:5800会输出hello world,表明此时uwsgi工作正常。再以socket形式(默认),启动uwsgi:uwsgi --ini uwsgi_conf.ini -d ./uwsgi.logsocket端口为配置文件中的端口:5000.在浏览器内访问:http://127.0.0.1:5000会输出hello world。四、安装nginx sudo pip install nginx(此命令有可能失败,) sudo apt-get -y install nginx简间的管理命令 sudo nginx -t sudo service nginx stop sudo service nginx start cd /etc/nginx/sites-available cat default server { listen 8888; server_name localhost; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:5000; } }以上是我修改的default文件,改完后 sudo nginx -s reload访问http://localhost:8888,应该输出 hello world五、uwsgi的停止和启动重启uwsgi先找到指定端口的进程(ma) py@ubuntu:~$ sudo netstat -ap | grep 5000tcp 0 0 localhost:5000 *:* LISTEN 21458/uwsgi 结束进程 kill -9 21458 启动uwsgiuwsgi --ini uwsgi_conf.ini -d ./uwsgi.log