Python Flask Web框架服务部署

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 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,就是安装好项目所需的第三方包,就可以将项目部署到服务器上了。

目录
相关文章
|
2月前
|
JavaScript 前端开发 机器人
【Azure Bot Service】在中国区Azure上部署机器人的 Python 版配置
本文介绍了在中国区Azure上使用Python SDK配置Azure Bot Service时遇到的问题及解决方案,涵盖参数设置与适配器配置,适用于希望在Azure中国区部署Python机器人的开发者。
|
4月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
|
5月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
330 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
4月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
118 1
|
4月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
6月前
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
219 35
|
6月前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
750 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
6月前
|
数据采集 人工智能 测试技术
Python有哪些好用且实用的Web框架?
Python 是一门功能强大的编程语言,在多个领域中得到广泛应用,包括爬虫、人工智能、游戏开发、自动化测试和 Web 开发。在 Web 开发中,Python 提供了多种框架以提高效率。以下是几个常用的 Python Web 框架:1) Django:开源框架,支持多种数据库引擎,适合新手;2) Flask:轻量级框架,基于简单核心并通过扩展增加功能;3) Web2py:免费开源框架,支持快速开发;4) Tornado:同时作为 Web 服务器和框架,适合高并发场景;5) CherryPy:简单易用的框架,连接 Web 服务器与 Python 代码。这些框架各有特色,可根据需求选择合适的工具。
284 14
|
4月前
|
测试技术 Python
Python接口自动化测试中Mock服务的实施。
总结一下,Mock服务在接口自动化测试中的应用,可以让我们拥有更高的灵活度。而Python的 `unittest.mock`库为我们提供强大的支持。只要我们正确使用Mock服务,那么在任何情况下,无论是接口是否可用,都可以进行准确有效的测试。这样,就大大提高了自动化测试的稳定性和可靠性。
185 0
|
7月前
|
存储 算法 文件存储
探秘文件共享服务之哈希表助力 Python 算法实现
在数字化时代,文件共享服务不可或缺。哈希表(散列表)通过键值对存储数据,利用哈希函数将键映射到特定位置,极大提升文件上传、下载和搜索效率。例如,在大型文件共享平台中,文件名等信息作为键,物理地址作为值存入哈希表,用户检索时快速定位文件,减少遍历时间。此外,哈希表还用于文件一致性校验,确保传输文件未被篡改。以Python代码示例展示基于哈希表的文件索引实现,模拟文件共享服务的文件索引构建与检索功能。哈希表及其分布式变体如一致性哈希算法,保障文件均匀分布和负载均衡,持续优化文件共享服务性能。

推荐镜像

更多