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. 打算从oschina的博客搬运到cnblog了

    如题,感觉cnblog似乎要更加专业一点,顺便也禁水.提高下文章质量 以后就都是干货了 oschina原址 顺便庆祝一下Windows Live Writer配置成功

  2. Apache Commons 系列简介 之 Pool

    一.概述 Apache Commons Pool库提供了一整套用于实现对象池化的API,以及若干种各具特色的对象池实现.2.0版本,并非是对1.x的简单升级,而是一个完全重写的对象池的实现,显著的提升 ...

  3. java编译期优化

    java语言的编译期其实是一段不确定的操作过程,因为它可以分为三类编译过程: 1.前端编译:把.java文件转变为.class文件 2.后端编译:把字节码转变为机器码 3.静态提前编译:直接把*.ja ...

  4. jQuery中,$('#main') 与 document.getElementById('main')是什么样的关系-转

    $('#main')[0]和document.getElementById('main')两个一模一样.解释:$('#main'):是一个jquery写法,#main是一个过滤器表示方法,表示查找一个 ...

  5. 在CentOS中安装中文支持

    执行命令: # yum groupinstall chinese-support 修改配置文件: # vim /etc/sysconfig/i18n LANG="zh_CN.UTF-8&qu ...

  6. mvc 中关于资源文件的扩展

    namespace System.Web.Mvc { /// <summary> /// 扩展HtmlHelper /// </summary> public static c ...

  7. LVM在线扩容

    我虚拟机根分区已经使用了35%,现在需要对他进行在线扩容,扩容之后使用率降到30% [root@localhost ~]# dfFilesystem 1K-blocks Used Available ...

  8. Jenkins若干小问题

    1. Jenkins上不能直接在shell中调用scp命令来执行上传下载操作,核心问题是scp需要输入密码. 为了可以直接将密码传递过去.我们安装  sshpass 来透传密码 a. 安装sshpas ...

  9. 关于Maven项目

    用maven 工程搭建项目,在搭建好之后,运行时却抛出了这样的错误:  Error configuring application listener of class org.springframew ...

  10. SDWebImage总结

    SDWebImage 支持异步的图片下载+缓存,提供了 UIImageView+WebCache的 category,方便使用. 优点:首先NSURLCache是缓存原始数据(raw data)到磁盘 ...