nginx+uwsgi01---flask部署
1.uwsgi.ini
[uwsgi] # uwsgi 启动时所使用的地址与端口注意socket与http不同,http可以被外网访问0.0.0. socket = 127.0.0.1: # 指向网站目录 chdir = /home/www/ # python 启动程序文件 wsgi-file = manage.py (有可能需要全路径) # python 程序内用以启动的 application 变量名 callable = app # 处理器数 processes = # 线程数 threads = #状态检测地址 stats = 127.0.0.1: 注意:callable=app 这个 app 是 manage.py 程序文件内的一个变量,这个变量的类型是 Flask的 application 类 。
2.目录规划
(.env) zhangshuaipeng@orange:~/web/flask/mysite$ tree ..
├── hello.py
├── hello.pyc
├── uwsgi
│ ├── uwsgi.log # 日志文件,通过该文件查看uwsgi的日志
│ ├── uwsgi.pid # pid文件,通过该文件可以控制uwsgi的重启和停止
│ ├── uwsgi.sock # socket文件,配置nginx时候使用
│ └── uwsgi.status # status文件,可以查看uwsgi的运行状态
└── uwsgi.ini
--------------------------------------------------------------------------------------------------------------------------------------------- (.env) zhangshuaipeng@orange:~/web/flask/mysite$ vi uwsgi.ini [uwsgi]
chdir=/home/zhangshuaipeng/web/flask/mysite/
home=/home/zhangshuaipeng/web/flask/mysite/.env
module=hello # python文件的名称
callable=app
master=true
processes= # worker进程个数
chmod-socket=
logfile-chmod=
uid=zhangshuaipeng_web
gid=zhangshuaipeng_web
procname-prefix-spaced=mysite # uwsgi的进程名称前缀
py-autoreload= # py文件修改,自动加载
#http=0.0.0.0: # 监听端口,测试时候使用
vacuum=true # 退出uwsgi是否清理中间文件,包含pid、sock和status文件
socket=%(chdir)/uwsgi/uwsgi.sock # socket文件,配置nginx时候使用stats=%(chdir)/uwsgi/uwsgi.status # status文件,可以查看uwsgi的运行状态
pidfile=%(chdir)/uwsgi/uwsgi.pid # pid文件,通过该文件可以控制uwsgi的重启和停止
daemonize=%(chdir)/uwsgi/uwsgi.log # 日志文件,通过该文件查看uwsgi的日志
3.nginx.conf
方式一:Ubuntu 上配置 Nginx 也是很简单,不要去改动默认的 nginx.conf 只需要将/ext/nginx/sites-available/default文件替换掉就可以了。
server {
listen ;
server_name XXX.XXX.XXX; #公网地址
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
uwsgi_param UWSGI_PYHOME /home/www/my_flask/venv; # 指向虚拟环境目录(就是ini文件的配置,可以不用写)
uwsgi_param UWSGI_CHDIR /home/www/my_flask; # 指向网站根目录
uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序
}
}
更改配置还需要记得重启一下nginx:sudo service nginx restart
方式二:软链
删掉 Nginx 的默认配置文件,在/etc/nginx/conf.d/中创建配置,实际上是创建软链
直接在当前目录下创建配置文件,将 Nginx 配置文件用软链接链接到 Nginx 配置文件夹中:
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /home/frank/Documents/helloflask/helloflask_nginx.conf /etc/nginx/conf.d/
下面给出一个简单的配置:
server {
listen ;
server_name your.website.url
charset utf-;
client_max_body_size 75M;
location / { try_files $uri @yourapplication; }
location @yourapplication {
include uwsgi_params;
uwsgi_pass
unix:/home/frank/Documents/helloflask/helloflask_uwsgi.sock;
}
}
我们可以将上述内容保存为 helloflask_nginx.conf,稍作解释:server_name 可以是域名,也可以写 ip 地址,uwsgi_pass 是表明 Nginx 与 uwsgi 的交流方式,我这里用的是 sock 文件,当然你也可以用指定端口号的形式,具体可以看这里。
重启 Nginx:sudo /etc/init.d/nginx restart
方式三:在指定目录创建
编辑配置文件:/etc/nginx/conf.d/flask.conf,nginx 配置 新建文件 /etc/nginx/conf.d/xxx.conf xxx.conf 中xxx你来定
server {
listen ;
server_name www.mysite.com;
charset utf-;
client_max_body_size 5M;
location /app1/ {
include uwsgi_params;
uwsgi_pass
unix:/home/kevin/web/flask/mysite/uwsgi/uwsgi.sock;#使用套接字也可以使用端口号
}
location /static{
alias /home/kevin/web/flask/mysite/static;
}
}
nginx+uwsgi01---flask部署的更多相关文章
- flask +gevent+nginx+Gunicorn+supervisor部署flask应用
上篇 可以完美部署flask ,但是视乎在结合gevent+apscheduler 实现异步非阻塞后台和定时任务的时候视乎不是那么完美.请教了前辈,决定使用flask+gevent+nginx+g ...
- CentOS 下用 Nginx 和 uwsgi 部署 flask 项目
前几天利用flask 写了几个调用salt-api 的接口,需要上线到正式环境,搜了一下 都是 用 nginx + uwsgi 来部署,这里记录下关键的配置项. 1.首先将代码上传到服务器上目录为: ...
- nginx+uwsgi+flask+supervisor 项目部署
环境 - Linux: Ubuntu 16.04 - uWSGI 2.0.18 - Flask 1.0.2 - supervisor 3.2.0 - nginx/1.8.1 首先区分几个概念 WSGI ...
- CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目
原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...
- 使用Nginx和uwsgi部署Flask项目
前言 之前用Flask框架开发了一个Python的Web项目,使用Nginx和uWSGI部署起来感觉挺麻烦,过程中还因为对Flask框架的不熟悉,花了好长时间才把应用完全部署起来.下面分享部署成功 ...
- Ubuntu下nginx+uwsgi+flask的执行环境搭建
选择web framwork是个非常艰难的事情, 主要分为轻量级和重量级框架. 因为没有搭建站点这样的须要, 所以回避SSH, Django这样的框架, 而选择一个轻量级框架. 自己也比較青睐pyth ...
- 一次请求中,经过 nginx+uWSGI+flask应用程序搭建服务的执行过程
Flask框架有自带的http server,但是缺点非常明显,并发能力,及时响应非常差,只适合开发时自测使用. 在我接触过的项目中,生产环境使用nginx+uWSGI+flask应用程序进行部署服务 ...
- Ubuntu下使用Nginx+uWSGI+Flask(初体验)
Ubuntu 18.04,Nginx 1.14.0, uWSGI 2.0.17.1,Flask, 前言 Windows不支持uWSGI!为了上线自己的项目,只能选择Linux. 自己前面开发了一个Fl ...
- flask 部署
学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...
- nginx,wsgi项目部署
1.一些重要概念 https://www.cnblogs.com/xiaonq/p/8932266.html 1.1web容器 什么是web容器 1.web容器是帮助我们部署java丶php丶pyth ...
随机推荐
- create-react-app脚手架中配置sass
本文介绍如何在react中配置sass 首先将你的文件名称改成scss结尾的文件 然后安装依赖 cnpm install sass-loader node-sass --save-dev 找到node ...
- 类型:。net;问题:HQL;结果:HQL: Hibernate查询语言
HQL: Hibernate查询语言 Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL.但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可 ...
- js和jQuery常用选择器
笔者觉得js是前台基础中的基础,而其选择器则是js基础中的基础,因长期使用框架导致js生疏,所有查资料,回顾一下js的常用选择器: 1.document.getElementById("id ...
- 人工智能一之TensorFlow环境配置
1.安装pip:sudo apt-get install python-pip python-dev 2.定义仅支持CPU的python2.7环境下TensorFlow安装包地址:export TF_ ...
- jquery datatable设置垂直滚动后,表头(th)错位问题
jquery datatable设置垂直滚动后,表头(th)错位问题 问题描述: 我在datatable里设置:"scrollY": '300px',垂直滚动属性后,表头的宽度就会 ...
- GUI编程02
1 编写一个导航栏 from tkinter import * root = Tk() root.title("测试") root.geometry("400x400+4 ...
- php学习笔记-多维数组
多维数组就是有一个数组,它里面的每个元素又是一个数组. <?php $stuff =array('food'=>array('apple','orange'),'book'=>arr ...
- hive与hbase数据类型对应关系
hive与hbase数据类型对应关系 当hbase中double,int 类型以byte方式存储时,用字符串取出来必然是乱码. 在hivd与hbase整合时也遇到这个问题:做法是:#b 1.加#b C ...
- WDCP文件缓存问题
WDCP文件缓存问题,新建index.php 输入代码 <?php echo '789'; ?> 显示789 修改代码 <?php echo '666'; ?> 显示789 访 ...
- NIO、AIO