树莓派部署Flask+uWSGI+Nginx过程

转载来自
http://blackgu.blogbus.com/logs/171363164.html
略作修改

1)安装Flask,uwsgi,nginx

Flask:sudo apt-get install python-flask

uwsgi:sudo apt-get install uwsgi uwsgi-plugin-python

nginx:sudo apt-get install nginx

2)创建Flask工程

这里就用最简单的HelloWorld,创建一个工程目录:myapp,里面包含以下文件:

文件名:myapp.py

代码:

from flask import Flask

app = Flask(__name__)

@app.route(‘/‘)

def hello():

return ‘Hello World‘

if __name__ == ‘__main__‘:

app.run()

3)配置uwsgi

在刚才创建的myapp目录下创建一个uwsgi的xml配置文件myapp_config.xml:

<uwsgi>

<pythonpath>[你的工程的根目录]</pythonpath>

<module>[模块名,这里用myapp]</module>

<callable>[因为app是启动整个服务的入口,所以是app]</callable>

<socket>/tmp/uwsgi.sock</socket>       #注:这里的sock文件不是某个现成的文件,也不需要事先创建,运行时会自动创建,文件名也是自己定的,路径也是可以自己定的

<master/>

<processes>4</processes>                #注:跑几个线程,这里用4个线程

<memory-report/>

</uwsgi>

样例:

<uwsgi>

<pythonpath>/root/workspace_aptana/mytest/src/test/uwsgi</pythonpath>

<module>myapp</module>

<callable>app</callable>

<socket>/tmp/uwsgi.sock</socket>

<master/>

<processes>4</processes>

<memory-report/>

</uwsgi>

3)配置nginx

在/etc/nginx/sites-available/目录下,创建一个站点文件配置文件site:

server {

listen 80;
        server_name www.myapp.com;

location / {
                include uwsgi_params;
                uwsgi_pass unix:/tmp/uwsgi.sock;   #注:这里的sock文件和uwsgi的sock文件配的是同一个文件,因为nginx和uwsgi需要通过这个socket进行交互
        }
}

 

或者,干脆直接在defaut.conf里面修改如下内容:

server {
        listen 8081;
        server_name localhost;

location / {
                include uwsgi_params;
                uwsgi_pass unix:/tmp/uwsgi.sock;  
        }
}

然后用ln命令创建一个link到/etc/nginx/sites-enable/里,link的名字也叫site,删除sites-enable目录下的default的link:

sudo    ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/      (注意:这个是LN的小写命令)

sudo rm /etc/nginx/sites-enabled/default

4)开始部署

1.启动uwsgi,命令是sudo uwsgi -x myapp_config.xml,会打出很多的字,如果没有加载工程成功可以从打出的信息中看出,然后不要关闭该Terminal,

2.新打开一个Terminal,在里面启动nginx:sudo /etc/init.d/nginx start,然后在浏览器里访问localhost(看配置的nginx里的server监听的端口,如上面的8),

3这时如果出现502页面,可以看下日志,我的日志是在/var/log/nginx/error.log,如果里面显示是sock文件因为权限问题无法访问,那只要利用chmod命令给sock文件赋上权限:chmod 777 /tmp/uwsgi.sock,然后uwsgi和nginx再重启一下,现在访问localhost就可以看到“Hello World!”,OK!

时间: 2024-10-11 16:26:18

树莓派部署Flask+uWSGI+Nginx过程的相关文章

python部署-Flask+uwsgi+Nginx

一.Flask部分(app.py) flask即Python代码:部分参考代码如下,相信很多人如果看到这篇文章一定有flask的代码能力. from app import create_app from singtec_Config import * app = create_app(DEV_MODEL) @app.route('/') def hello_world(): return 'Hello World!!!' if __name__ == '__main__': app.run(ho

Flask+uwsgi+Nginx+Ubuntu部署教程

学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的过程就会重复一次.不知道多少人的膝盖中箭了呢?我也这样干过,这么做确实很蠢,所以我决定写一篇 Flask+uwsgi+Nginx+Ubuntu 的部署教程,解答一些我自己在这个过程中的疑问,从原理到方案,以一个小白的角度,总结一下部署.运维这件事,应该对初学 Flask 需要部署的同学有些帮助. 环

Flask+uwsgi+Nginx+Ubuntu部署

学了一段时间flask,可是一直没有做过部署, 于是想着怎么部署呢, 想想,先吧服务给搞通吧,于是呢 就先想着去吧服务给搞起来,这里选择的是Flask+uwsgi+Nginx+Ubuntu, Python选择的是2.7.2这个是Ubuntu系统自带的学起来感觉还是简单的 不用去软连,目前自己的flask是python3写的 ,慢慢去过渡,先吧这个给搞通了,那么在优化也是很顺手的.其实对于很多的原理自己也是一知半解,先吧这个给搭起来,慢慢去了解里面的逻辑什么的. Nginx Nginx 是高效的

用Docker部署Django+uWSGI+Nginx

用Docker部署Django+uWSGI+Nginx 大致步骤如下: 创建Centos容器 安装Python及pip 安装MySQL 使Django连接到MySQL 运行uWSGI服务器 运行Nginx服务器 ? ? 创建Centos容器 安装docker软件 yum install docker 创建一个centos容器 docker run -d --name deploy1 --network host centos tail -f /dev/null -d:让它在后台运行. –name

【Flask】flask+uwsgi+nginx环境部署

在centos上,部署flask框架的环境,我选择了uwsgi和nginx 具体步骤为: 配置nginx+uwsgi 安装nginx  nginx/1.12.2安装Flask  0.10.1安装uwsgi  2.0.16(64bit)安装uwsgi-plugin-python 2.0.16 创建一个flask项目 1 #!/usr/bin/python 2 # coding=utf-8 3 4 from flask import Flask 5 import sys 6 reload(sys)

Flask+uwsgi+Nginx环境搭建

开源软件准备需要的软件列表:setuptools-33.1.1.zipPython-2.7.13.tgzpip-9.0.1.tar.gznginx-1.10.3.tar.gz软件统一上传到/usr/local/src/下,python是使用自己编译的. Python安装 先安装以下的软件(如果有的话,就可以不安装了,例如使用rpm -qa zlib-devel先查看下)yum install zlib-devel -yyum install openssl-devel -y tar -zxvf解

Flask uwsgi nginx:504 Gateway Time out

uwsgi+nginx部署的web站点运行时可能产生504 Gateway Time out这样的错误,究其原因是因为相关参数设置的不当. nginx和uwsgi整合时有三个参数可以用于设置超时时间,在nginx配置文件http->server->location中设置. uwsgi_connect_timeout:默认60秒,与uwsgi-server连接的超时时间,该值不能超过75秒.若在超时时间内未能成功连接则断开连接尝试.uwsgi_read_timeout:默认60秒,nginx等待

[linux]centos7.4部署django+Uwsgi+Nginx

前言:我已经写了几个接口用来部署在服务器上的,首先选择django+Uwsgi+Nginx因为配置简单,比较符合python的简单操作功能强大的特点 然后对于django的一些版本在之前的文章写了 参考:https://www.cnblogs.com/Jack-cx/p/9351633.html  根据版本,服务器pip3 install xxx 安装下 我的django项目大概结构: TestWebApi ----TestWebApi ----Apiso(创建的应用) ----manage.p

Centos 7 下部署Django + uWSGI + Nginx

1.废话 之前利用Django写了些测试工具,一直是直接 python manage.py runserver 8081这么来用的.用户量不大,倒也不影响什么.uWSGI+Nginx的性能肯定要好,so 研究了一下 2.环境: Python: 3.5 Django: 1.8 OS: CentOS 7 x86_64 uwsgi: 2.0.17 3.安装Python3.5 不要删除自带的python2.7,否则会出问题,因为centos许多软件需要依赖系统自带python 安装依赖工具 yum in