---------------------------nginx---------------

sudo apt-get install nginx

sudo apt-get remove nginx nginx-common # 卸载删除除了配置文件以外的所有文件。

sudo apt-get purge nginx nginx-common # 卸载所有东东,包括删除配置文件。

server {
listen 80;
server_name ip或域名;
charset utf-8;
rewrite_log on;

location / {

include uwsgi_params;
uwsgi_pass unix:/home/ubuntu/project/project.sock;
}
}
-------------------------python and flask------------------------------
ubuntu14.04 默认安装的是python3.4,也可以手工编译升级成python3.6参见本人的升级python版本文章。

sudo apt-get install python3.6-venv

mkdir project

cd project

pyhon3 -m venv venv 创建虚拟环境

. venv/bin/activate

pip install --upgrade pip

pip freeze > requirements.txt

pip install -r requirements.txt

pip install uwsgi

deactivate

-------------------------------uwsgi配置 ------------------------------

uwsgi.ini文件内容如下:

chdir = /deploy/project_dir

module = module_filename:create_app()    #  module_filename.py文件中定义了工厂方法create_app()方法,当然也可以使用定义全局app用下面的两行代替 参考:http://flask.pocoo.org/docs/1.0/cli/#application-discovery

# wsgi-file = manage.py
# callable = app

master = true
processes = 2

threads = 2
http = ip:port   # 如果使用url直接在浏览器中访问uwsgi则需要设置成http协议,如果是Nginx和uwsgi通信则可以设置成socket协议如:socket = /var/www/project/uwsgi.sock
chmod-socket= 666
logfile-chmod= 644
daemonize=%(chdir)/uwsgi.log

可以使用uwsgi --http ip:5000 --module 'module_filename:create_app()'来测试一下,成功后再运行uwsgi --ini uwsgi.ini

----------------------supervisor-----------------
sudo apt-get install supervisor 以这种方式安装后自动设置为开机启动。

supervisord配置文件在: /etc/supervisor/supervisord.conf

然后 program 的配置文件命名规则推荐:app_name.conf,放在/etc/supervisor/conf.d/下面
; ================================
; uwsgi supervisor
; ================================
[program:app_lesson] # project_name为项目名称
command = /home/ubuntu/lesson/venv/bin/uwsgi --ini /home/ubuntu/lesson/uwsgi.ini
stopsignal=QUIT
autostart=true
autorestart=true
stdout_logfile=/var/log/uwsgi/supervisor_flask.log # 运行日志
stderr_logfile=/var/log/uwsgi/supervisor_flask_err.log # 错误日志

supervisorctl 是 supervisord 的命令行客户端工具,使用的配置和 supervisord 一样

sudo supervisord -c supervisord.conf # 指定配置文件启动supervisord

sudo supervisorctl 进入 supervisorctl 的 shell 交互界面
help # 查看帮助
status # 查看程序状态
stop program_name # 关闭 指定的程序
start program_name # 启动 指定的程序
restart program_name # 重启 指定的程序
tail -f program_name # 查看 该程序的日志
update # 重启配置文件修改过的程序(修改了配置,通过这个命令加载新的配置)

sudo chmod 777 /run
sudo chmod 777 /var/log
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock

sudo service supervisor restart

------------------------------------------------------------------------------------

ps -ef|grep uwsgi| grep -v grep|cut -c 7-15|xargs sudo kill -9

如果出错,则查看/var/log/nginx/error.log,根据错误信息来处理。

总结: stack is : the web client <-> the web server <-> the socket <-> uWSGI <-> Python

flask+uswgi+nginx+python3.6的venv发布网站ubuntu14.04的更多相关文章

  1. 阿里云部署 Flask + WSGI + Nginx 详解

    抵不住朋友的诱惑,今天终于入手了一台阿里云服务器,是Ubuntu 1.4 32位版本,最初考虑是用来尝尝鲜只是买了个最低配的,价格算起来与在国外买个空间的价格相当吧(可能一年才贵100多),但用起来感 ...

  2. nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    nginx+uWSGI+django+virtualenv+supervisor发布web服务器   导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以 ...

  3. Flask+uwsgi+Nginx+Ubuntu部署

    学了一段时间flask,可是一直没有做过部署, 于是想着怎么部署呢, 想想,先吧服务给搞通吧,于是呢 就先想着去吧服务给搞起来,这里选择的是Flask+uwsgi+Nginx+Ubuntu, Pyth ...

  4. Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    目录 Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器 crm django项目部署流程 使用supervisro启动uwsgi,退出虚 ...

  5. 写给新手看的Flask+uwsgi+Nginx+Ubuntu部署教程

    学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...

  6. flask +gevent+nginx+Gunicorn+supervisor部署flask应用

    上篇   可以完美部署flask ,但是视乎在结合gevent+apscheduler 实现异步非阻塞后台和定时任务的时候视乎不是那么完美.请教了前辈,决定使用flask+gevent+nginx+g ...

  7. 基于flask+gunicorn+nginx来部署web App

    基于flask+gunicorn&&nginx来部署web App WSGI协议 Web框架致力于如何生成HTML代码,而Web服务器用于处理和响应HTTP请求.Web框架和Web服务 ...

  8. 解决nginx发布网站跨目录访问

    解决nginx发布网站跨目录访问(thinkphp5+lnmp) 到:usr/local/nginx/conf/vim fastcgi.cof 把最后一行加上井号#注释掉保存重启 restart 参考 ...

  9. 阿里云 centos7 django + uWSGI+Nginx + python3 部署攻略

    centos7+nginx+python3+django+uwsgi配置Django 项目部署   1.租的服务器(选择centos)的话,需要在阿里云后台控制台开放几个端口,克隆一下已开放的端口,t ...

随机推荐

  1. 九度OJ 1351:数组中只出现一次的数字 (位运算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3098 解决:906 题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 输入: 每个 ...

  2. Random Fourier Features

    K-DSN 深度堆叠网络 Random Features for Large-Scale Kernel Machines To accelerate the training of kernel ma ...

  3. 【python】-- GIL锁、线程锁(互斥锁)、递归锁(RLock)

    GIL锁 计算机有4核,代表着同一时间,可以干4个任务.如果单核cpu的话,我启动10个线程,我看上去也是并发的,因为是执行了上下文的切换,让看上去是并发的.但是单核永远肯定时串行的,它肯定是串行的, ...

  4. python三大器

    装饰器 装饰器的作用: 装饰器的本质:一个闭包函数 (高阶函数+嵌套函数) 装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展 闭包原理 装饰器执行流程 带多个参数函数 import ...

  5. CENTOS7 修改网卡名称为eth[012...],格式

    具体操作是修改/etc/default/grub文件 在GRUB_CMDLINE_LINUX一行中添加net.ifnames=0 biosdevname=0 保存文件后然后运行 grub2-mkcon ...

  6. 第12条:不要在for和while循环后面写else块

    核心知识点: (1)一般的if/else是前面不执行,后面才执行,循环下面的else是前面执行完后面才会执行,如果是break打断也不会执行.循环为空或False也不执行. (2)try/expect ...

  7. 2018年长沙理工大学第十三届程序设计竞赛 C 取手机 【概率】

    链接:https://www.nowcoder.com/acm/contest/96/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  8. [原创]java WEB学习笔记36:Java Bean 概述,及在JSP 中的使用,原理

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. 20145229吴姗珊 《Java程序设计》第9周总结

    20145229吴姗珊 <Java程序设计>第9周总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交 ...

  10. debian下配置dynamic printk以及重新编译内核

    在以前的一篇博文<编译debian内核>已经提过了重新编译内核的方法,但是整个过程花费时间较长,并且生成deb包. 这里我采用稍微简单一些的方法,因为我并没有对内核或者驱动代码做任何修改, ...