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部署的更多相关文章

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

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

  2. CentOS 下用 Nginx 和 uwsgi 部署 flask 项目

    前几天利用flask 写了几个调用salt-api 的接口,需要上线到正式环境,搜了一下 都是 用 nginx + uwsgi 来部署,这里记录下关键的配置项. 1.首先将代码上传到服务器上目录为: ...

  3. 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 ...

  4. CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目

    原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...

  5. 使用Nginx和uwsgi部署Flask项目

    前言   之前用Flask框架开发了一个Python的Web项目,使用Nginx和uWSGI部署起来感觉挺麻烦,过程中还因为对Flask框架的不熟悉,花了好长时间才把应用完全部署起来.下面分享部署成功 ...

  6. Ubuntu下nginx+uwsgi+flask的执行环境搭建

    选择web framwork是个非常艰难的事情, 主要分为轻量级和重量级框架. 因为没有搭建站点这样的须要, 所以回避SSH, Django这样的框架, 而选择一个轻量级框架. 自己也比較青睐pyth ...

  7. 一次请求中,经过 nginx+uWSGI+flask应用程序搭建服务的执行过程

    Flask框架有自带的http server,但是缺点非常明显,并发能力,及时响应非常差,只适合开发时自测使用. 在我接触过的项目中,生产环境使用nginx+uWSGI+flask应用程序进行部署服务 ...

  8. Ubuntu下使用Nginx+uWSGI+Flask(初体验)

    Ubuntu 18.04,Nginx 1.14.0, uWSGI 2.0.17.1,Flask, 前言 Windows不支持uWSGI!为了上线自己的项目,只能选择Linux. 自己前面开发了一个Fl ...

  9. flask 部署

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

  10. nginx,wsgi项目部署

    1.一些重要概念 https://www.cnblogs.com/xiaonq/p/8932266.html 1.1web容器 什么是web容器 1.web容器是帮助我们部署java丶php丶pyth ...

随机推荐

  1. JavaScript基本概念A

    简介 如果需要了解这些概念, 您应该熟悉 JS 的基本知识. 弱类型 在也无需绞尽脑汁觉得到底采用 float.double,int 还是 short 或是 long 还是 String.只需这样定义 ...

  2. samba Nginx

    1.samba 2.nfs 3.crond 4.nginx ifconfig yum install net-tools -y ifconfig #查看所有已激活的网卡信息 ifconfig eth0 ...

  3. JS中,关于数组的练习题

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. 前端设置cookie,以及jQuerycookie的使用

  5. jetty分析

    jetty处理过程: 1  new Server() (1)初试化线程池  生成固定大小线程数,新来的线程放入BlockingQueue. (2)初始化ServerConnector 初始化 sche ...

  6. C++——const

    参考:https://www.cnblogs.com/Forever-Kenlen-Ja/p/3776991.html ; //修饰变量,a不能该内容(更改为其他的值) int* const p = ...

  7. php返回文件路径

    1 basename — 返回路径中的文件名部分 如果文件名为test.php,路径为www/hj/test.php echo basename($_SERVER['PHP_SELF']); 输出为: ...

  8. Angular问题03 @angular/material版本问题

    1 问题描述 应用使用 angular4在使用@angular/material时,若果在导入模块时使用mat开头,就会报错. 2 问题原因 @angular/material版本出现问题,@angu ...

  9. win10 requireAdministrator设置开机自启动无效的解决方案

    开发了一个wpf程序,需要管理员权限,设置了requireAdministrator 同时需要开机自启动,所以添加了注册表: using (RegistryKey key = Registry.Cur ...

  10. chrome headless

    最近才知道有这么个东西,说白了就是chrome浏览器的命令行模式,一说到命令行自然就和自动化 高效率有关系,感觉对于自动化测试和爬虫很有用啊