博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx和flask安装与配置
阅读量:6292 次
发布时间:2019-06-22

本文共 2271 字,大约阅读时间需要 7 分钟。

网上的教程很垃圾,现自己写一份

其实我也写的很垃圾,同事怎么也搭不起环境,原因是如果安装好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:~$ ls
Desktop           ma        Public             test.py         uwsgi.pid
Documents         models    syntaxnet-wrapper  test.pyc        Videos
Downloads         Music     Templates          tfsegfault.txt
examples.desktop  Pictures  tensorflow         uwsgi_conf.ini
python程序内容
#coding=utf-8
from flask import Flask
app = 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 = true
pythonpath = /home/py/test
module = test
callable = app
memory-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.log
socket端口为配置文件中的端口: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 5000
tcp        0      0 localhost:5000          *:*                     LISTEN      21458/uwsgi     
结束进程
 kill -9   21458
 
启动uwsgi
uwsgi --ini uwsgi_conf.ini -d ./uwsgi.log

转载于:https://www.cnblogs.com/herosoft/p/8134337.html

你可能感兴趣的文章
jdk6.0 + Tomcat6.0的简单jsp,Servlet,javabean的调试
查看>>
Android:apk签名
查看>>
2(2).选择排序_冒泡(双向循环链表)
查看>>
MySQL 索引 BST树、B树、B+树、B*树
查看>>
微信支付
查看>>
CodeBlocks中的OpenGL
查看>>
短址(short URL)
查看>>
第十三章 RememberMe——《跟我学Shiro》
查看>>
mysql 时间函数 时间戳转为日期
查看>>
索引失效 ORA-01502
查看>>
Oracle取月份,不带前面的0
查看>>
Linux Network Device Name issue
查看>>
IP地址的划分实例解答
查看>>
如何查看Linux命令源码
查看>>
运维基础命令
查看>>
入门到进阶React
查看>>
SVN 命令笔记
查看>>
检验手机号码
查看>>
重叠(Overlapped)IO模型
查看>>
Git使用教程
查看>>