flask + uwsgi 生产环境
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 生产环境的更多相关文章
- Django+Nginx+uWSGI生产环境部署
生产环境中的数据流 参考文档: wsgi详解:https://blog.csdn.net/li_101357/article/details/52748323 wsgi协议介绍(萌新版):https: ...
- Flask+uwsgi+virtualenv环境配置
Linux系统版本: SLES12sp3 (阿里云) 1. 首先需要安装python-devel,否则后续安装会报错! rpm -qa|grep python-base 结果: python-base ...
- Flask+uwsgi+Nginx环境搭建
开源软件准备需要的软件列表:setuptools-33.1.1.zipPython-2.7.13.tgzpip-9.0.1.tar.gznginx-1.10.3.tar.gz软件统一上传到/usr/l ...
- Python生产环境部署(fastcgi,uwsgi)
Python部署web开发程序的几种方法 fastcgi ,通过flup模块来支持,在nginx里对应的配置指令是 fastcgi_pass http,nginx使用proxy_pass转发,这个要求 ...
- 10: Django + Uwsgi + Nginx 的生产环境部署
1.1 一些重要概念 1.Web协议介绍 Web协议出现顺序: CGI -> FCGI -> WSGI -> uwsgi 1. CGI: 最早的协议 2. FCGI: 比CGI快 ...
- 2020最新nginx+gunicorn+supervisor部署基于flask开发的项目的生产环境的详细攻略
本攻略基于ubuntu1804的版本,服务器用的华为云的服务器,python3(python2已经在2020彻底停止维护了,所以转到python3是必须的)欢迎加我的QQ6398903,或QQ群讨论相 ...
- Ubuntu下nginx+uwsgi+flask的执行环境搭建
选择web framwork是个非常艰难的事情, 主要分为轻量级和重量级框架. 因为没有搭建站点这样的须要, 所以回避SSH, Django这样的框架, 而选择一个轻量级框架. 自己也比較青睐pyth ...
- 生产环境使用Nginx+uwsgi部署Django
在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可.如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教 ...
- Django + Uwsgi + Nginx 的生产环境部署
使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇文章总结归 ...
随机推荐
- 在生产环境记录http请求参数
StringBuilder strParam = new StringBuilder(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ...
- 字符串hash算法
http://www.cnblogs.com/zyf0163/p/4806951.html hash函数对大家来说不陌生吧 ? 而这次我们就用hash函数来实现字符串匹配. 首先我们会想一下二进制数. ...
- Exchange的AutoDiscover服务
最近工作中涉及到Exchange的AutoDiscover服务,最初想学习后输出一个博客文章.但是最后是找到一篇中文博客文章已经非常清楚的解释了这个问题,如下: http://didda.blog.5 ...
- 使用dispatch_semaphore_t实现event的基本功能
在Windows平台下, 对线程的同步控制,可以有Critical Section,Mutex,Semaphore,Event 等方式. 在IOS平台,使用GCD进行简单的多线程编程时,可以使用dis ...
- [课程设计]Scrum 1.1 NABCD模型&产品Backlog
多鱼点餐系统WEB NABCD模型 & 产品Backlog ● 一.NABCD模型 1) N (Need 需求) 为了解决餐饮企业在同行中的竞争优势,减少顾客到店后的点餐.等餐及结算过程消耗 ...
- docker本地私有仓库的创建,及https错误修正
docker版本1.12.5 #docker run -d -p 5000:5000 -v <HOST_DIR>:/tmp/registry-dev registry #<HOST_ ...
- android studio 插件
引用于:http://www.zhihu.com/question/28026027 adb-idea 支持直接在AS面板中进行ADB操作,个人觉得太实用,上面有哥们已提及,这里再介绍下: Unins ...
- ISO20000
ISO20000IT运维服务标准流程: 策划 建立 实施 运行 监控 回顾 维护 改进 方法论PDCA: Plan Do Check Act
- 使用ImageMagick的convert命令,实现批量rgb转cmyk
因为业务上的需求,使用脚本批量生成的二维码不能直接去打印店排版印刷,必须转换为cmyk的印刷格式. 首先去http://www.imagemagick.org/下载ImageMagick并安装,这个工 ...
- [MySql] - 数据库备份还原
导出数据库到SQL方法: mysqldump.exe -u[USERNAME] -p[PASSWORD] -h [IP] jira --lock-all-tables > c:\db.sql m ...