---------------------------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. Java基础 - 标识符

    标识符就是用来给包,类,方法变量等起名字的符号 组成规则: A:unicode字符 数字字符,英文大小写字母,汉字(不建议使用汉字) B:下划线 _ C:美元符 $ 注意事项: A:不能以数字开头 B ...

  2. JSP 分页代码

    jsp 分页模板 后台分页代码: 说明: 在 com.zc.domain 包下: PageBean.java 文件 package cn.itcast.customer.domain;   impor ...

  3. Js拼接html并给onclick传多个参数

    return '<a id="" class="ace_button" href="#" onclick="showItem ...

  4. IDEA 配置Tomcat 跑Jeecg项目

    最近搞了个国人开发的开源项目,还不错,记录一下踩过得坑; 首先项目开源地址 下载就可以; 准备工作作者以介绍,不再详述; 1:我使用的IDEA作为开发工具- 首先导入pom.xml,下载依赖包(此过程 ...

  5. Linux改动hostname的两个办法

    假设你想把主机名改为 linux的话.两中方法: 1. # hostname linux 这样改动了以后马上生效.可是重新启动后就没了 2. # vi /etc/sysconfig/network 改 ...

  6. UVALive - 7427 the math 【二分匹配】

    题目链接 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  7. 第三章 python中的字符串

    一.字符串的基本操作 所有标准的序列操作对字符串同样适用,如索引.分片.乘法.判断成员是否存在.求长度.最大值和最小值等.记住一点,字符串是不可变的. 二.字符串中重要的方法 1.find(subst ...

  8. P4022 [CTSC2012]熟悉的文章

    题目 P4022 [CTSC2012]熟悉的文章 题目大意:多个文本串,多个匹配串,我们求\(L\),\(L\)指(匹配串中\(≥L\)长度的子串出现在文本串才为"熟悉",使得匹配 ...

  9. server.xml笔记

    本文总结自: http://www.importnew.com/26156.html 核心元素: 顶层元素: server service 连接器: connector 容器: engine > ...

  10. 20145229吴姗珊 《Java程序设计》2天小总结

    20145229吴姗珊 <Java程序设计>2天小总结 教材学习内容总结 由于这周学的内容比较简单,主要是关于日期.日期之类的东西.所以自己从书上看了一些内容 总结了第四章 认识对象 和第 ...