将树莓派变成一个web服务器(2):Nginx+Flask+uWSGI部署全过程
2015-08-28 21:31
781 查看
1)安装Flask,uwsgi,nginx
2)创建Flask工程
这里就用最简单的HelloWorld,
创建一个工程文件夹flasksite,新建文件index.py
代码:
3)配置uwsgi
uwsgi配置文件各项说明
在刚才创建的flasksite目录下创建一个uwsgi的xml配置文件flasksite.xml::
3)配置nginx
在/etc/nginx/sites-available/目录下,创建一个站点文件配置文件site:
然后用ln命令创建一个link到/etc/nginx/sites-enable/里,link的名字也叫site,删除sites-enable目录下的default的link:
4)开始部署
1.启动uwsgi
会打出很多的字,如果没有加载工程成功可以从打出的信息中看出,然后不要关闭该Terminal,
*特别注意,使用的是uwsgi_python命令,不是uwsgi
*除了配置XML文件,还可以用命令行部署,如:
2.新打开一个Terminal,在里面启动nginx:
然后在浏览器里访问localhost,helloworld出来了,Terminal里面出现了一行信息。
如果能看到Hell World,说明我们打通的桥梁变成:客户端(浏览器)——服务器(nginx)——socket——uWSGI——python
最后,参考文章:
1.linux下nginx+python+uwsgi部署总结http://www.vimer.cn?p=2274
2.uwsgi 配合django,web.py,flask等 http://projects.unbit.it/uwsgi/wiki/Example
3uwsgi 启动参数:http://uwsgi-docs.readthedocs.org/en/latest/Options.html
sudo apt-get update sudo apt-get install python-flask #Flask sudo apt-get install uwsgi uwsgi-plugin-python #uWSGI sudo apt-get install nginx #Nginx
2)创建Flask工程
这里就用最简单的HelloWorld,
创建一个工程文件夹flasksite,新建文件index.py
代码:
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello World' if __name__ == '__main__': app.run()
3)配置uwsgi
uwsgi配置文件各项说明
<uwsgi> <pythonpath>[上一步新建的工程文件夹,即文件夹flask的路径]</pythonpath> <module>[上一步新建的python文件,即模块名为index]</module> <callable>[因为app是启动整个服务的入口,默认就写app]</callable> <socket>127.0.0.1:8000</socket> #注:设定套接字 <master/> <processes>4</processes> #注:跑几个线程,这里用4个线程 <memory-report/> </uwsgi>
在刚才创建的flasksite目录下创建一个uwsgi的xml配置文件flasksite.xml::
<uwsgi> <pythonpath>/var/www/flasksite</pythonpath> <module>index</module> <callable>app</callable> <socket>127.0.0.1:8000</socket> <master/> <processes>4</processes> <memory-report/> </uwsgi>
3)配置nginx
在/etc/nginx/sites-available/目录下,创建一个站点文件配置文件site:
server { listen 80; server_name localhost; location / { root /var/www/flasksite; include uwsgi_params; uwsgi_pass 127.0.0.1:8000; uwsgi_param UWSGI_CHDIR /var/www/flasksite; uwsgi_param UWSGI_SCRIPT index; uwsgi_read_timeout 1800; uwsgi_send_timeout 300; proxy_read_timeout 300; error_page 404 @proxy; } }
然后用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_python -x /var/www/flasksite/flasksite.xml
会打出很多的字,如果没有加载工程成功可以从打出的信息中看出,然后不要关闭该Terminal,
*特别注意,使用的是uwsgi_python命令,不是uwsgi
*除了配置XML文件,还可以用命令行部署,如:
sudo uwsgi_python -s 127.0.0.1:8000 --module index --callable app --process 4
2.新打开一个Terminal,在里面启动nginx:
sudo /etc/init.d/nginx start
然后在浏览器里访问localhost,helloworld出来了,Terminal里面出现了一行信息。
如果能看到Hell World,说明我们打通的桥梁变成:客户端(浏览器)——服务器(nginx)——socket——uWSGI——python
最后,参考文章:
1.linux下nginx+python+uwsgi部署总结http://www.vimer.cn?p=2274
2.uwsgi 配合django,web.py,flask等 http://projects.unbit.it/uwsgi/wiki/Example
3uwsgi 启动参数:http://uwsgi-docs.readthedocs.org/en/latest/Options.html
相关文章推荐
- Nginx + PHP mysql_pconnect = Database errors (Too many connections)
- nginx的安装与配置小结
- 安装成功的nginx如何添加未编译安装模块
- nginx基本介绍
- 日志切割
- CentOS 6.5 安装 Nginx 1.7.8 教程
- Nginx日志处理
- Nginx添加虚拟主机
- nginx 如何安装 nginx_lua_module 模块 以及 echo-nginx-module 模块
- nginx日志配置指令详解
- nginx(四)初识nginx日志文件
- nginx+php(fastcgi)安装教程
- 介绍Nginx
- Linux系统 - 源码编译安装Nginx
- Ubuntu系统安装配置Nginx、PHP、MySQL、ZendGuardLoader服务器环
- nginx+uwsgi+django报502错误分析
- nginx负载均衡基于ip_hash的session粘帖
- nginx中,ip_hash和url_hash的区别
- 解析 Nginx 负载均衡
- ubuntu下nginx的安装教程(过程可能有点不同)