Ubuntu下nginx+uwsgi+flask的执行环境搭建
2016-01-27 12:13
751 查看
选择web framwork是个非常艰难的事情, 主要分为轻量级和重量级框架. 因为没有搭建站点这样的须要, 所以回避SSH, Django这样的框架, 而选择一个轻量级框架. 自己也比較青睐python这门语言, 就选择了flask框架, nginx代理server享誉盛名, 所以拿来使用咯.
一. 开发环境搭建
採用离线安装方式, ubuntu开发环境(centos等环境类似)
nginx
安装$ wget http://nginx.org/download/nginx-1.6.0.tar.gz #仅784k $ cd nginx-1.6.0.tar.gz $ tar -zxvf nginx-1.6.0.tar.gz $ ./configure $ make $ sudo make install
经常使用命令
启动:
sudo /usr/local/nginx/sbin/nginx [-c nginx.conf]
重新启动:
sudo /usr/local/nginx/sbin/nginx -s reload
关闭:
sudo /usr/local/nginx/sbin/nginx -s quit
验证安装启动成功
curl localhost显示welcome的话就OK了
常见问题
port号被占用:
sudo netstat -tulpn | grep 80 sudo kill -s (PID)
uwsgi
安装wget http://projects.unbit.it/downloads/uwsgi-2.0.5.1.tar.gz #752k sudo python setup.py install
验证成功
/usr/bin/uwsgi -h出现帮助提示即可了.
flask
安装wget https://pypi.python.org/packages/source/F/Flask/Flask-0.10.1.tar.gz sudo python setup.py install
验证成功
flask.py
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()
python flask.py, 訪问
curl 127.0.0.1:5000成功就可以
mysql
sudo apt-get install mysql-server, 使用
mysql -u root -p保证登陆成功就可以.
python mysql组件:
sudo apt-get install python-mysqldb
二. nginx和uwsgi配置
nginx本身仅仅能调用静态文件, 它须要依赖网关协议文件来调用脚本. uwsgi是nginx的标准模块, 用于调用其他脚本.改动nginx的配置文件
conf/nginx.conf以指向uwsgi
location / { include uwsgi_params; uwsgi_pass 127.0.0.1:5000; root html; index index.html index.htm; }
改动uwsgi文件, 配置脚本文件
app_config.xml, 即执行的文件名称以及应用名(nginx, uwsgi和app间须要通过socket进行交互)
<uwsgi> <pythonpath>/home/chenjiebin/web/flaskdemo</pythonpath> <module>flask</module> <callable>app</callable> <socket>127.0.0.1:5000</socket> <master/> <processes>4</processes> <memory-report/> </uwsgi>
pythonpath表示项目文件夹
module表示项目启动模块,如上例为app.py,这里就为app
callable表示flask项目的实例名称。上例代码中app = Flask(name),所以这里为app
socket表示和nginx通信的地址和port,和nginx配置里的uwsgi_pass一致。
processes表示开启多少个子进程处理请求。
三. 执行
启动nginx
sudo /usr/local/nginx/sbin/nginx将默认调用
conf/nginx.conf文件
启动uwsgi
前台程序 sudo /usr/local/bin/uwsgi -x $(WD)/app_config.xml
deamon程序:
sudo /usr/local/bin/uwsgi -x $(WD)/app_config.xml -d /var/log/uwsgi/uwsgi.log
关闭应用与重部署
nginx.conf发生变化: nginx -s reload会重载配置文件
python脚本发生变化: 须要重新启动uwsgi
ps aux | grep uwsgi;
sudo kill -s HUP $(PID)
參考资料
1. Centos 6.4下nginx+uwsgi+flask的执行环境搭建
相关文章推荐
- 为Nginx服务器配置黑名单或白名单功能的防火墙
- [置顶][终极精简版][图解]Nginx搭建flv mp4流媒体服务器
- Nginx负载均衡配置实例详解
- Nginx服务器对数据传输速度限制的基本配置方法讲解
- Nginx中配置开启Nginx Status来查看服务器运行状态
- 修改配置解决Nginx服务器中常见的上传与连接错误
- nginx跨域
- 配置nginx使得主域名301重定向到www子域名
- 配置nginx重写index.php
- CentOS 编译安装 nginx php mysql
- Nginx服务器基础的安全配置与一些安全使用提示
- nginx上设置禁止通过ip访问服务器,只能通过域名访问
- Nginx基础入门nginx通用模板
- tornado 使用supervisor管理进程,使用nginx做负载均衡
- apache和nginx的区别
- Nginx负载均衡
- Nginx使用ngx_zeromq模块返回502错误的解决方法
- WordPress程序伪静态规则(Nginx/Apache)及二级目录规则
- Nginx+Lua开发入门
- nginx高可用负载均衡配置