---------------------------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. POJ 2092 Grandpa is Famous【水---找出现第二多的数】

    链接: http://poj.org/problem?id=2092 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27454#probl ...

  2. jsp中嵌入的java代码执行对html的影响方式

    1 直接输出html标签嵌入到html中 <body> <h1>显示当前时间和日期</h1> <% Date date = new Date(); out.p ...

  3. office2013安装/激活

    ed2k://|file|cn_office_professional_plus_2013_x64_dvd_1134006.iso|914106368|E5FBAE9EE9CB35D5E777EA78 ...

  4. nginx搭建服务

    1.当然首先是安装nginx :http://nginx.org/en/download.html 2.一波安装之后 3.在nginx 文件夹打开命令行:cmd 4.开启nginx 服务命令:star ...

  5. redis持久化AOF详细操作步骤

    1.切换到redis目录下面,创建文件 s3-redis.conf 2.编辑文件s3-redis.conf 3.终止当前redis服务端 4.登录redis客户端失败,说明服务端已停止 5.重启red ...

  6. Kafka具体解释二、怎样配置Kafka集群

    Kafka集群配置比較简单,为了更好的让大家理解.在这里要分别介绍以下三种配置 单节点:一个broker的集群 单节点:多个broker的集群 多节点:多broker集群 一.单节点单broker实例 ...

  7. 500 Lines or Less: A Template Engine(模板引擎)

    介绍: 多数项目都是包含很多的逻辑处理,只有少部分的文字文本处理.编程语言非常擅长这类项目.但是有一些项目只包含了少量的逻辑处理,大量的文本数据处理.对于这些任务,我们期望有一个工具能够很好的处理这些 ...

  8. 使用 Node.js 对文本内容分词和关键词抽取

    npm install nodejieba var nodejieba = require("nodejieba"); var result = nodejieba.cut(&qu ...

  9. JVM对象

    对象 Java虚拟机采用自动的内存管理和自适应的优化策略.但了解java虚拟机的运行机制和优化策略,写出适合java虚拟机管理的程序对性能提升是有意义的. 逃逸分析:对象的作用范围只在本线程范围,如方 ...

  10. vo类总结

    1.Camera类 camera类里面,首先camera有5个变量,fx_,fy_,cx_,cy_,depth_scale_5个变量,由外部传fx,fy,cx,cy,depth_scale给它.定义了 ...