系统相关
首页 > 系统相关> > linux 下以uwsgi启动flask 服务

linux 下以uwsgi启动flask 服务

作者:互联网

Web 服务器
虽然 Flask 提供了内置 Web 服务器,但是那种服务器是为开发打造的,达不到生产环境中需要的安全和效率,细心的同学会注意到,用 app.run() 或者 flask run 启动应用时,都会得到一句警告:Do not use the development server in a production environment.

那么在生产环境中,需要用生产专用 Web 服务器,比如 uWSGI、Gunicorn、Gevent 等等,

注意:多数 Web 服务器只支持 Linux 操作系统,如果在 Windows 上部署,可以用 Apache + mod_wsgi 的方式

我们以 uWSGI 为例,了解下如何将 Flask 项目同 uWSGI 服务器关联。

安装 uWSGI

pip install uwsgi

启动 uWSGI
uwsgi --http :9090 --wsgi-file run.py
–http: 通过 http 可访问,绑定端口为 9090
–wsgi-file:指定启动脚本
一般我们会将启动设置写在配置文件中,一是有方便加入更多配置,二是方便管理,uWSGI 支持 ini、xml、yaml、json 格式的配置文件

以 ini 格式为例,创建uwsgi.ini:

[uwsgi]
# 开启主进程
master = true
# 使用 http 协议,绑定 5000 端口
http=:5000
# 应用主目录
chdir = /home/alisx/justdopython/flaskapps
# 应用启动脚本
wsgi-file=/home/alisx/justdopython/flaskapps/run.py
# 启动脚本中定义的 Flask 实例 变量名
callable=app
# Web 服务器工作进程数
processes=4
# 每个进程中线程数
threads=2

启动 uWSGI :

uwsgi uwsgi.ini

Docker中使用

FROM python:3.7

LABEL maintainer="Sebastian Ramirez <tiangolo@gmail.com>"

WORKDIR /app

RUN git config --global http.sslVerify false

RUN git config --global user.name "xx"

RUN git config --global user.email "xx"

RUN git init 

RUN git remote add origin -f "https://xx:xx@vmportal.git"

RUN git config core.sparsecheckout true

RUN echo "avdm-restapi">>.git/info/sparse-checkout

RUN git pull origin master

COPY uwsgi.ini uwsgi.ini

run cp -R ./avdm-restapi/. /app/


ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone



run rm -rf ./avdm-restapi



WORKDIR /app

RUN pip install  --no-cache-dir  --trusted-host cvbartifactory.dae.ra.rockwell.com --index-url https://cvbartifactory.dae.ra.rockwell.com/artifactory/api/pypi/pypi/simple -r requirements.txt

RUN pip install uwsgi --trusted-host cvbartifactory.dae.ra.rockwell.com --index-url https://cvbartifactory.dae.ra.rockwell.com/artifactory/api/pypi/pypi/simple

EXPOSE 5001




WORKDIR /app

RUN chmod 777 /app/main.py

CMD  uwsgi uwsgi.ini

标签:git,RUN,下以,flask,app,--,uWSGI,linux,uwsgi
来源: https://blog.csdn.net/weixin_43632687/article/details/112761298