我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python3 flask nginx

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python3 flask nginx

配置项目的时候一般使用虚拟环境,是各个项目的环境独立起来,更多方便管理。至于如何使用搜索即可,并不难
1、安装python3
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
xz -d Python-3.6.4.tar.xz
tar -xvf Python-3.6.4.tar
 
./configure --prefix=/usr/local/python3.6.4 --enable-shared CFLAGS=-fPIC
加上--enable-shared和-fPIC之后可以将python3的动态链接库编译出来,默认情况编译完lib下面只有python3.xm.a这样的文件,python本身可以正常使用,但是如果编译第三方库需要python接口的比如caffe等,则会报错;所以这里建议按照上面的方式配置,另外如果openssl不使用系统yum安装的,而是使用自己编译的比较新的版本可以使用--with-openssl=/usr/local/openssl这种方式指定,后面目录为openssl实际安装的目录,另外编译完还要将openssl的lib目录加入ld运行时目录中即可. 
 
make;make install;
添加软连接
ln -s /usr/local/python3.6.4/bin/python3 /usr/bin/python3
ln -s /usr/local/python3.6.4/bin/pip3 /usr/bin/pip3
 
防止运行Python是提示找不到库
cp libpython3.6m.so.1.0 /usr/lib/ /usr/lib64/
 
Python3安装后导致yum不能使用,因为执行yum需要python2的版本,修改两个文件
vim /usr/bin/yum vim /usr/libexec/urlgrabber-ext-down 把#!/usr/bin/python 修改为 #!/usr/bin/python2
 
2、先安装nginx(https://www.cnblogs.com/fwqblogs/p/10132205.html)。配置uwsgi
pip install uwsgi
ln -s /usr/local/python3.6.4/bin/uwsgi /usr/bin/uwsgi
 
vim config.ini
 
[uwsgi]
chdir=/home/Py
pythonpath= /home/Py
#项目启动文件
wsgi-file = /home/Py/run.py
#为你的项目入口文件
module=run
#实例化flask的变量 application = Flask(__name__)
callable=application
#当修改文件内容后重启uwsgi
py-autoreload=1
#开启一个master进程监控项目运行
master=true
#uwsgi的端口。要与项目运行的端口一致
socket=/home/Py/flask_socket.sock
socket=127.0.0.1:5000
processes=4
#threads=2
buffer-size=65536
#允许用内嵌的语言启动线程。这将允许你在app程序中产生一个子线程。
enable-threads=true
pidfile=/tmp/uwsgi-master.pid
uid=nginx
gid=root
#当服务器退出的时候自动删除unix socket文件和pid文件。
vacuum=true
#皇帝”模式运行。在这种模式下,它将件事uWSGI配置文件的路径并且为每一个它找到的文件生成实例(‘诸侯’)。无论什么时候一个配置文件被修改了,皇帝都会自动重启诸侯
emperor=true
logto=/var/log/nginx/uwsgi.log
 
后台启动
uwsgi --ini config.ini &
 
● 常用选项:
socket : 地址和端口号,例如:socket = 127.0.0.1:50000
processes : 开启的进程数量
workers : 开启的进程数量,等同于processes(官网的说法是spawn the specified number ofworkers / processes)
chdir : 指定运行目录(chdir to specified directory before apps loading)
wsgi-file : 载入wsgi-file(load .wsgi file)
stats : 在指定的地址上,开启状态服务(enable the stats server on the specified address)
threads : 运行线程。由于GIL的存在,我觉得这个真心没啥用。(run each worker in prethreaded mode with the specified number of threads)
master : 允许主进程存在(enable master process)
daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)。实际上最常用的,还是把运行记录输出到一个本地文件上。
pidfile : 指定pid文件的位置,记录主进程的pid号。
vacuum : 当服务器退出的时候自动清理环境,删除unix socket文件和pid文件(try to remove all of the generated file/sockets)
disable-logging : 不记录请求信息的日志。只记录错误以及uWSGI内部消息到日志中。如果不开启这项,那么你的日志中会大量出现这种记录:
[pid: 347|app: 0|req: 106/367] 117.116.122.172 () {52 vars in 961 bytes} [Thu Jul 7 19:20:56 2016] POST /post => generated 65 bytes in 6 msecs (HTTP/1.1 200) 2 headers in 88 bytes (1 switches on core 0)
 
配置nginx
location /{
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
uwsgi_param UWSGI_PYHOME /usr/bin/python; #也可对应虚拟环境
uwsgi_param UWSGI_CHDIR /home/Py;
uwsgi_param UWSGI_SCRIPT run:application;
}
有一个index路由时,直接访问 http://192.168.164.128/index/
有定义路由前缀home时 http://192.168.164.128/home/index/
 
最后如果有多个项目的话 如果用域名到很简单配置多个nginx server 和uwsgi就可以
下面将配置使用ip访问不同项目
假如我有两个项目 分贝在 Py1 和 Py2
匹配该路径下的项目 重定向到81端口 定义81端口的项目uwsgi配置 一个项目对应一个uwsgi配置
location /Py1/{
proxy_pass http://127.0.0.1:81/;
}
server{
listen 81;
server_name localhost;
location /{
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
uwsgi_param UWSGI_PYHOME /usr/bin/python;
uwsgi_param UWSGI_CHDIR /home/Py1;
uwsgi_param UWSGI_SCRIPT run:application;
}
}
 
location /Py2/{
proxy_pass http://127.0.0.1:82/;
}
server{
listen 82;
server_name localhost;
location /{
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
uwsgi_param UWSGI_PYHOME /usr/bin/python;
uwsgi_param UWSGI_CHDIR /home/Py2;
uwsgi_param UWSGI_SCRIPT run:application;
}
}
 
 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python3 flask nginx

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python3 flask nginx

配置项目的时候一般使用虚拟环境,是各个项目的环境独立起来,更多方便管理。至于如何使用搜索即可,并不难1、安装python3yum -y install zlib-devel bzip2-devel openssl-devel ncurses
2023-01-30

Flask+python3+super

背景手里有一个web项目,代码按照前端代码库、后端代码库分别在GitHub上,分散带来的结果是,不容易持续集成,比如你可能需要很多的job去保证一个项目的正常运作,但是这个项目也不是特别大,所以尝试将代码融合,于此同时将代码docker化,
2023-01-31

nginx+uwsgi+flask+su

环境- Linux: Ubuntu 16.04- uWSGI 2.0.18 - Flask 1.0.2- supervisor 3.2.0- nginx/1.8.1首先区分几个概念WSGIWeb Serv
2023-01-31

flask + Python3 实现的的

**背景: 1.平时测试接口,总是现写代码,对测试用例的管理,以及测试报告的管理持久化做的不够,2.工作中移动端开发和后端开发总是不能并行进行,需要一个mock的依赖来让他们并行开发。3.同时让自己锻炼去开发测试平台,掌握flask开发程序
2023-01-31

如果使用 Python3(Flask)

[TOC]1.1、打开浏览器输入下面网址https://wx.qq.com/按下F12打开开发调试模式。我们可以看到产生二维码的图片的URL为https://login.weixin.qq.com/qrcode/wbO9FUkKHg==,但
2023-01-31

Python3+django+nginx

1 环境介绍和准备Python3+django+nginx+uwsgi使用场景部署当我们写完一套完整的网站功能,我们需要实时在生产环境上线,并需要容纳高并发的访问请求。所以我们需要部署以上来保证网站的服务质量。1.1基本环境准备:ech
2023-01-31

Flask+Nginx踩坑记录

因为之前的网站项目使用的是Spring MVC,而且当时为了尽快赶完,代码结构非常粗暴,还存在大量的copy-paste代码,然后被师兄批评,然后决定接受师兄的建议,对网站进行重构,并且使用听说可以让我长寿一点的python【什么鬼。。。】
2023-01-31

python3 flask 使用连接池

在真实的线上环境连接数据库一般都是要使用连接池的,连接池统一管理数据库连接,可以提高应用性能。python数据库连接池可以使用dbutils和PySQLPool但是这两个库似乎都只支持python2不支持python3,最后折腾了半天,Py
2023-01-31

python3-开发进阶Flask的基础

一、概述最大的特点:短小精悍、可拓展强的一个Web框架。注意点:上下文管理机制,依赖wsgi:werkzurg 模块二、前奏学习werkzurg先来回顾一个知识点:一个类加括号会执行__init__方法,一个对象加括号执行__call__方
2023-01-30

Flask + Gunicorn + Nginx的部署方式

本篇内容介绍了“Flask + Gunicorn + Nginx的部署方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!WSGI容器——Gu
2023-06-04

Nginx Gunicorn flask项目部署思路分析详解

这篇文章主要为大家介绍了Nginx Gunicorn flask项目部署思路分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-08

在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程

Python基础环境搭建 CENTOS 6.X 系列默认安装的 Python 2.6 ,目前开发中主要是使用 Python 2.7 ,这两个版本之间还是有不少差异的,程序在 Python 2.6 下经常会出问题。 比如: re.sub 函数
2022-06-04

在阿里云服务器上配置CentOS+Nginx+Python+Flask环境

项目运行环境 阿里云(单核CPU, 1G内存, Ubuntu 14.04 x64 带宽1Mbps), 具体购买和ssh连接阿里云本文不做描述。 实用工具 首先进入阿里云后先要升级下apt-get, 并下载所需软件sudo apt-get u
2022-06-04

Nginx如何根据前缀路径转发到不同的Flask服务

这篇文章主要介绍了Nginx如何根据前缀路径转发到不同的Flask服务,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-06

Flask

python三大框架预览Python Web框架分类 功能分类: a:收发消息相关(socket) b:根据不同的URL执行不同的函数(业务逻辑相关的) c:实现动态网页(字符串的替换)
2023-01-30

Python的Flask框架及Nginx实现静态文件访问限制功能

Nginx配置 Ngnix,一个高性能的web服务器,毫无疑问它是当下的宠儿。卓越的性能,灵活可扩展,在服务器领域里攻城拔寨,征战天下。 静态文件对于大多数website是不可或缺的一部分。使用Nginx来处理静态文件也是常见的方式。然而,
2022-06-04

Flask-Mail

WOW! 我的大号QQ收到了小号QQ的邮件! 小玩Flask-Mail先到小号邮箱开启服务并获取获取授权码  https://jingyan.baidu.com/article/b0b63dbf1b2ef54a49307054.html接下
2023-01-30

Flask Blueprint

Blueprint简介Blueprint它是Flask项目的一种组件式开发,可以在一个应用内或跨越 多个项目共用蓝图。使用蓝图可以极大地简化大型应用的开发难度,也为Flask扩展 提供了一种在应用中注册服务的集中式机制。 模块化管理程序路由
2023-01-31

Flask 扩展系列之 Flask-R

简介安装快速入门一个最小的 api 例子资源丰富的路由端点参数解析数据格式化完整 TODO 应用例子Flask-RESTful是一个Flask的扩展,它增加了对快速构建REST APIs的支持。它是一种轻量级的抽象,可以与现有的ORM/库一
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录