---------------------------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. css3 transition效果

    <meta charset="UTF-8"> <style> .btn { display: inline-block; font-size: 12px; ...

  2. python+NLTK 自然语言学习处理七:N-gram标注

    在上一章中介绍了用pos_tag进行词性标注.这一章将要介绍专门的标注器. 首先来看一元标注器,一元标注器利用一种简单的统计算法,对每个标识符分配最有可能的标记,建立一元标注器的技术称为训练. fro ...

  3. Android TextView文字过多时通过滚动条显示多余内容

    方法一: TextView文字过多,显示不全,怎么办?我们可以为Textview添加滚动条. <TextView android:id="@+id/bus_detail_content ...

  4. 磁盘检测SMART工具

    题记: 做过一些关于硬盘的调研任务,当时搜集很多资料,不过现在没有,从网上找了一篇关于SMART的介绍,感觉基本上都是比较全面了. 首先各大硬盘厂商生产的硬盘基本都是会遵循SMART的技术标准的,当然 ...

  5. 【leetcode刷题笔记】Substring with Concatenation of All Words

    You are given a string, S, and a list of words, L, that are all of the same length. Find all startin ...

  6. 第六篇 javascript面向对象

    一.闭包 闭包是指可以包含自由(未绑定到特定对象)变量的代码块. 「闭包」,是指拥有多个变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 闭包是个函数,而它「记 ...

  7. UVA 1493 Draw a Mess(并查集+set)

    这题我一直觉得使用了set这个大杀器就可以很快的过了,但是网上居然有更好的解法,orz... 题意:给你一个最大200行50000列的墙,初始化上面没有颜色,接着在上面可能涂四种类型的形状(填充):  ...

  8. HDU 3954 Level up(多颗线段树+lazy操作)

    又是一开始觉得的水题,结果GG了好久的东西... 题意是给你n个英雄,每个英雄开始为1级经验为0,最多可以升到k级并且经验一直叠加,每一级都有一个经验值上限,达到就升级.接着给你两种操作:W li r ...

  9. vs2015配置boost c++

    参考:https://blog.csdn.net/zengraoli/article/details/70187556 https://blog.csdn.net/misterfm/article/d ...

  10. html5 + css3 + jQuery + 响应式布局设计

    1. [代码][HTML]代码     <!DOCTYPE html><html dir="ltr" lang="zh-CN">< ...