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,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇文章总结归 ...
随机推荐
- 将网页另存为PDF文件的方法
使用google chrome浏览器测试,其他浏览器应该也是差不多的方法. 步骤1: 打开需要转换的网页: 步骤2: 点击右上角的三点按键,或者快捷键Ctrl+P,调用的打印页面: 步骤3: 选择目标 ...
- About SQLite
About SQLite See Also... Features When to use SQLite Frequently Asked Questions Well-known Users Boo ...
- css z-index属性使用过程中遇到的问题
z-index属性在web开发中会经常使用,其主要的作用简单的说就是把元素的position设置为absolute.fixed之后,可以调节元素在文档上的层级关系.比如经常见到的dialog,mask ...
- PHP-PHP-FPM的max_children一些误区
现在nginx + fpm 基本成为主流的配置,其中我们比较关注的是pm.max_chindren的配置 首先,我们关注一个前提设置: pm = static/dynamic, 这个选项是标识fpm子 ...
- asp.net 设置网页过期
/// <summary> /// 判断网页是否过期 /// </summary> /// <returns></returns> private bo ...
- Android日常开发总结的技术经验60条 转
1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 2. 数据库表段字段常量和SQL逻辑分离,更清 ...
- Who is using Asio?
https://think-async.com/Asio/WhoIsUsingAsio
- 兼容性js中setTimeout 传参“保值”方案
这里所谓“保值”,是指在setTimeout中指定的时间后,执行指定的方法所用到的“参数”值,跟执行setTimeout时该“参数”值一样.是不是有点懵?看如下例子: ================ ...
- Rails :布局和视图渲染
原文地址: http://guides.ruby-china.org/layouts_and_rendering.html Rails 布局和视图渲染 本文介绍 Action Controller 和 ...
- AngularJs之$scope对象(作用域)
一.作用域 AngularJs中的$scope对象是模板的域模型,也称为作用域实例.通过为其属性赋值,可以传递数据给模板渲染. 每个$scope都是Scope类的实例,Scope类有很多方法,用于 ...