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