https://www.digitalocean.com/community/tutorials/how-to-deploy-flask-web-applications-using-uwsgi-behind-nginx-on-centos-6-4

http://vladikk.com/2013/09/12/serving-flask-with-nginx-on-ubuntu/

https://www.linode.com/docs/websites/nginx/wsgi-using-uwsgi-and-nginx-on-centos-5

https://zafiel.wingall.com/archives/7513

yum -y install nginx
rm -rf /etc/nginx/conf.d/default.conf yum -y install python-devel python-pip python-virtualenv gcc
mkdir -p /opt/demo/app

virtualenv /opt/demo/venv
source /opt/demo/venv/bin/activate
pip install flask -i https://pypi.douban.com/simple
pip install uwsgi -i https://pypi.douban.com/simple pip freeze
Flask==0.11.1
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.11.11
click==6.6
itsdangerous==0.24
uWSGI==2.0.14
cat > /opt/demo/app/__init__.py << EOF
#!/usr/bin/python
# -*- coding: utf-8 -*- from flask import Flask
app = Flask(__name__) @app.route("/")
def hello():
return "Hello World!" if __name__ == "__main__":
app.run(host='0.0.0.0', port=8000)
EOF
cat > /opt/demo/run.py << EOF
#!/usr/bin/python
# -*- coding: utf-8 -*- from app import app if __name__ == "__main__":
app.run(host='0.0.0.0', port=8000)
EOF
python /opt/demo/run.py
* Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
deactivate
cat > /etc/nginx/conf.d/demo.conf << EOF
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 100M; location / {
try_files \$uri @demo;
} location @demo {
include uwsgi_params;
uwsgi_pass unix:///tmp/demo_uwsgi.sock;
}
}
EOF
/etc/init.d/nginx start && chkconfig nginx on
cat > /opt/demo/demo_uwsgi.ini << EOF
[uwsgi]
base = /opt/demo app = run
module = %(app)
callable = app virtualenv = %(base)/venv
pythonpath = %(base) socket = /tmp/%n.sock
chmod-socket = 666 vacuum = true
daemonize = %(base)/%n.log master = true
worker = 1
threads = 2
max-requests = 1000
EOF
cat > /etc/init.d/demo_uwsgi << EOF
#!/bin/bash
#
# bye-reader start script
#
# chkconfig: 345 99 1
# description: demo_uwsgi start script
# processname: demo_uwsgi
# pidfile: /var/run/demo_uwsgi.pid
# # Source function library.
. /etc/init.d/functions PROGNAME="demo_uwsgi"
PID="/var/run/\$PROGNAME.pid"
LOCK="/var/run/\$PROGNAME.lock"
RETVAL=0
PROG="/opt/demo/venv/bin/uwsgi" [ -f \$PROG ] || exit 0 start() {
echo -n "Starting \$PROGNAME: "
daemon \$PROG --ini /opt/demo/\$PROGNAME.ini --uid nginx --gid nginx --pidfile \$PID
echo
[ \$RETVAL = 0 ] && touch \$LOCK
return \$RETVAL
} stop() {
echo -n "Stopping \$PROGNAME: "
killproc -p \$PID \$PROGNAME -INT
RETVAL=\$?
echo
[ \$RETVAL = 0 ] && rm -f \$LOCK \$PID
} show_status() {
status \$PROGNAME
} case "\$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
show_status
;;
*)
echo "Usage: \$PROGNAME {start|stop|restart|status}"
RETVAL=2
;;
esac
exit \$RETVAL
EOF
chmod 755 /etc/init.d/demo_uwsgi
chkconfig --add demo_uwsgi
chkconfig demo_uwsgi on
/etc/init.d/demo_uwsgi start
Starting demoapp_uwsgi: [uWSGI] getting INI configuration from /opt/demoapp/demoapp_uwsgi.ini
[ OK ]
ps aux|grep uwsgi
nginx 1856 1.9 1.5 219276 16084 ? S 15:12 0:00 /opt/demo/venv/bin/uwsgi --ini /opt/demoapp/demo_uwsgi.ini --uid nginx --gid nginx --pidfile /var/run/demo_uwsgi.pid
nginx 1861 0.0 1.2 295056 12820 ? Sl 15:12 0:00 /opt/demo/venv/bin/uwsgi --ini /opt/demoapp/demo_uwsgi.ini --uid nginx --gid nginx --pidfile /var/run/demo_uwsgi.pid
root 1864 0.0 0.0 103312 908 pts/0 S+ 15:12 0:00 grep uwsgi

flask + uwsgi 生产环境的更多相关文章

  1. Django+Nginx+uWSGI生产环境部署

    生产环境中的数据流 参考文档: wsgi详解:https://blog.csdn.net/li_101357/article/details/52748323 wsgi协议介绍(萌新版):https: ...

  2. Flask+uwsgi+virtualenv环境配置

    Linux系统版本: SLES12sp3 (阿里云) 1. 首先需要安装python-devel,否则后续安装会报错! rpm -qa|grep python-base 结果: python-base ...

  3. Flask+uwsgi+Nginx环境搭建

    开源软件准备需要的软件列表:setuptools-33.1.1.zipPython-2.7.13.tgzpip-9.0.1.tar.gznginx-1.10.3.tar.gz软件统一上传到/usr/l ...

  4. Python生产环境部署(fastcgi,uwsgi)

    Python部署web开发程序的几种方法 fastcgi ,通过flup模块来支持,在nginx里对应的配置指令是 fastcgi_pass http,nginx使用proxy_pass转发,这个要求 ...

  5. 10: Django + Uwsgi + Nginx 的生产环境部署

    1.1 一些重要概念 1.Web协议介绍 Web协议出现顺序: CGI -> FCGI -> WSGI -> uwsgi 1. CGI:  最早的协议 2. FCGI:  比CGI快 ...

  6. 2020最新nginx+gunicorn+supervisor部署基于flask开发的项目的生产环境的详细攻略

    本攻略基于ubuntu1804的版本,服务器用的华为云的服务器,python3(python2已经在2020彻底停止维护了,所以转到python3是必须的)欢迎加我的QQ6398903,或QQ群讨论相 ...

  7. Ubuntu下nginx+uwsgi+flask的执行环境搭建

    选择web framwork是个非常艰难的事情, 主要分为轻量级和重量级框架. 因为没有搭建站点这样的须要, 所以回避SSH, Django这样的框架, 而选择一个轻量级框架. 自己也比較青睐pyth ...

  8. 生产环境使用Nginx+uwsgi部署Django

    在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可.如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教 ...

  9. Django + Uwsgi + Nginx 的生产环境部署

    使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇文章总结归 ...

随机推荐

  1. 一次失败的Selenium chromedriver切换

    背景 Selenium webdriver一直使用Firefox作为浏览器来跑webtest, 但是最近发现ff有时会报超时的错误,于是想到使用chromedriver来提升稳定性.本想只把.fire ...

  2. mybatis——延迟加载

    ------------------------------------------------SqlMapConfig.xml------------------------------------ ...

  3. login

    package addresslist; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.event.Act ...

  4. Getting Real 开发宝典

       此书是管理者.程序员或设计师必学的宝典.它以更小的规模,更快的速度,更高的质量来完成软件开发,使产品更简单.粗暴(精致).      近百条精炼总结,不要奢望一次全部记住或理解,只要能理解或做到 ...

  5. ubuntu 16.04 启用root用户方法

    引用:http://blog.csdn.net/sunxiaoju/article/details/51993091 1.使用:sudo passwd root设置root的密码,如下图所示: 2.使 ...

  6. [API]使用Blueprint来高雅的编写接口文档 前后端api文档,移动端api文档

    网址:http://apiary.io/ 介绍:一款非常强大的前后端交互api设计编辑工具(编辑器采用Markdown类似的描述标记,非常高效),高颜值的api文档,还能生成多种语言的测试代码. 中文 ...

  7. PHP MVC简单介绍,对PHP当前主流的MVC做了一个总结

    东抄西抄,对PHP当前主流的MVC做了一个总结PPT. 希望对初学者有点帮助! PHP MVC初步.ppt

  8. [platform]Device和Driver注册顺序

    1. 设备和驱动注册,无论谁先谁后,都可以通过查询总线进行匹配 设备挂接到总线上时,与总线上的所有驱动进行匹配(用bus_type.match进行匹配),如果匹配成功,则调用bus_type.prob ...

  9. 微信开发-ACCESS TOKEN 过期失效解决方案

    微信开发-ACCESS TOKEN 过期失效解决方案 起因:因为access_token的重要性,开发过微信的都知道,但是他有自己的生命周期,官方解释为:"有效期为7200秒",一 ...

  10. asp.net下出现其中的组件“访问被拒绝”的解决方法

    一.一般情况下,对该组件重新授权即可.附上ASP,NETWORK SERVICE用户的可修改权限. 二.其中最常见的原因是Indexing service服务引起的.解决方法就是停用Indexing  ...