Python Flask Web框架服务部署

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
简介: Python Flask Web框架服务部署

Get新知识:

nginx + gunicorn + flask 部署web项目

nginx 的安装和配置

一、安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
二、安装 PCRE(让 Nginx 支持 Rewrite 功能)
#下载最新版本的,注意不要用pcre2
wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
tar -xvf pcre-8.42.tar.gz
cd pcre-8.42 
#安装编译
./configure
make && make install
#查看pcre版本
pcre-config --version
三、安装nginx
#下载
wget https://nginx.org/download/nginx-1.15.9.tar.gz
tar -xvf nginx-1.15.9.tar.gz
cd nginx-1.15.9
#编译安装
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.42 
make && make install
#查看版本
/usr/local/webserver/nginx/sbin/nginx -v
三、nginx配置
#创建 Nginx 运行使用的用户 www
/usr/sbin/groupadd www 
/usr/sbin/useradd -g www www
# 也可以不新建用户,而是使用root用户即可
#设置包含多个配置文件,在nginx.conf底部添加
include vhost/*.conf;
#启动
/usr/local/webserver/nginx/sbin/nginx
/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx
# /usr/local/webserver/nginx/conf/vhost/demo.tilesrow.com.conf 
server
    {
            # nginx 默认监听80 端口号,可以自定义
        listen 80;
        #listen [::]:80;
        # server_name 就是本机地址
        server_name  xx.com;
        # 默认访问的静态文件资源
        index index.html index.htm index.php default.html default.htm default.php;
        root  /data/project/demo1;
        access_log  /usr/local/webserver/nginx/logs/xx.com.log;
    }

内网映射端口配置

server
    {
        listen 80;
        #listen [::]:80;
        server_name  demo.xx.com;
        location / {
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_pass http://127.0.0.1:8001;
        }
        access_log  /usr/local/webserver/nginx/logs/demo.xx.com.log;
    }

结果配置如下:

server{
    listen 8000;
    server_name  192.168.123.201;
    location {
            include uwsgi_params;
           #  uwsgi_pass  127.0.0.1:9000;
           proxy_pass http://127.0.0.1:9000/;
   }
}

gunicorn 的安装配置

注意下python 项目的虚拟环境下。
使用pip install gunicorn 安装 gunicorn

安装好之后就可通过命令来启停服务。

项目的启动

使用下面命令进行项目的启动
gunicorn -w 5 -b 127.0.0.1:9000 wsgi:application
其中 127.0.0.1:9000 是flask应用程序的启动端口和IP,wsgi 是项目根目录下的一个启动项目文件名为wsgi.py application 是 flask实例对象名。

或者使用自定义的gunicorn.py 配置文件
gunicorn -c app/gunicorn_config.py wsgi:application
其中.py 是自定义的配置文件

如下:

import multiprocessing

bind = '0.0.0.0:9000'      #绑定ip和端口号
backlog = 512                #监听队列
chdir = '/usr/local/webserver/nginx/software_project'  #gunicorn要切换到的目的>工作目录
timeout = 40      #超时
worker_class = 'gevent' #使用gevent模式,还可以使用sync 模式,默认的是sync模式

workers = multiprocessing.cpu_count() * 2    #进程数
threads = 2 #指定每个进程开启的线程数
# 设置最大并发量
worker_connections = 2000
# 设置进程文件目录
pidfile = '/var/run/gunicorn.pid'

centos 使用 yum 在线安装python3

步骤:

  1. 安装epel

    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
  2. 安装 epel-release 工具

    yum install epel-release
    
  3. 找到库里面支持的 python3 版本

    yum list | grep python3 | more
    
  4. 安装python3

    yum install python36
    
  5. 测试安装是否成功

    python3
    

Linux下安装Python虚拟环境Virtualenv

需要先安装好python3 的环境。
1、首先,使用pip命令安装virtualenv模块:

# pip3 install virtualenv

测试是否安装成功

# virtualenv --version

安装成功,则会打印安装的virtualenv的版本号

3、创建独立运行环境,并命名

# virtualenv --no-site-packages venv

venv是虚拟环境的名称,可以根据自己的需要进行命名。
其中 直接使用命令 virtualenv 就可以创建一个独立的Python运行环境,加上参数--no-site-packages,可以将已经安装到系统Python环境中的第三方包都不制到独立环境中,这样我们就可以得到一个不带任何第三方包的Python环境了。

4、新建的Python环境被放到了当前目录下的venv目录,有了venv这个Python环境,我们就可以开始使用这个虚拟环境了,需将其激活:

# source venv/bin/activate

需要注意的是source 虚拟环境下的bin目录下的activate ,激活成功后,我们可以看到终端命令提示符前多了虚拟环境的名称

5、如果暂时不用此虚拟环境了,退出venv环境

(venv) # deactivate

6、其他命令

① 查看当前虚拟机环境目录

# worken

②切换虚拟环境

# workon venv2

③退出虚拟环境

# deactivate

④删除虚拟环境

# rmvirtualenv venv

安装并配置好 python 虚拟环境 virtualenv 好 之后i,就是安装好项目所需的第三方包,就可以将项目部署到服务器上了。

目录
相关文章
|
1月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
268 0
|
1月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
183 0
|
1月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
293 0
|
1月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
117 0
|
4月前
|
机器学习/深度学习 算法 量子技术
GQNN框架:让Python开发者轻松构建量子神经网络
为降低量子神经网络的研发门槛并提升其实用性,本文介绍一个名为GQNN(Generalized Quantum Neural Network)的Python开发框架。
97 4
GQNN框架:让Python开发者轻松构建量子神经网络
|
4月前
|
JSON 监控 BI
拼多多批量下单工具,拼多多买家批量下单软件,低价下单python框架分享
使用Selenium实现自动化操作流程多线程订单处理提升效率
|
4月前
|
机器人 数据安全/隐私保护 Python
企业微信自动回复软件,企业微信自动回复机器人,python框架分享
企业微信机器人包含完整的消息处理流程,支持文本消息自动回复、事件处理、消息加密解密等功能
|
1月前
|
开发框架 前端开发 Go
【GoGin】(0)基于Go的WEB开发框架,GO Gin是什么?怎么启动?本文给你答案
Gin:Go语言编写的Web框架,以更好的性能实现类似Martini框架的APInet/http、Beego:开源的高性能Go语言Web框架、Iris:最快的Go语言Web框架,完备的MVC支持。
290 1
|
3月前
|
运维 数据可视化 C++
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
2025年热门Web化容器部署工具对比:Portainer与Websoft9。Portainer以轻量可视化管理见长,适合技术团队运维;Websoft9则提供一站式应用部署与容器管理,内置丰富开源模板,降低中小企业部署门槛。两者各有优势,助力企业提升容器化效率。
329 1
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
|
2月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)

推荐镜像

更多