fastapi + uvicorn + gunicorn部署时run命令(20210308在用)

本文介绍了使用Docker部署FastAPI应用的详细步骤,包括基于uvicorn和gunicorn的配置,以及优化设置如健康检查、超时管理和镜像加速。同时,还展示了PHP和Node.js应用的Docker运行命令,以及Docker网络创建和IP查找的方法,旨在提升容器化部署的效率和稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fastapi + uvicorn + gunicorn部署时run命令(20210308在用)

run docker

docker run -d \
--name mqsub \
--restart=always \
--network php-net \
-p 8000:80 \
-v /root/mqsub:/app \
-e KEEP_ALIVE="20" \
-e GRACEFUL_TIMEOUT="20" \
-e TIMEOUT="20" \
mqsub /start-reload.sh

fastapi uvicorn 部署Dockerfile(20210308在用)

#FROM centos/python-36-centos7
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
MAINTAINER sam
USER root

WORKDIR /app

# 下载pip包
RUN python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

RUN pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

RUN pip install wheel -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install pycrypto -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install mq_http_sdk  -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install aliyunsdkcore -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple aliyun-python-sdk-iot

RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple fastapi
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pydantic
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple uvicorn

#COPY requirements.txt /home/requirements.txt

# 使用淘宝的npm镜像
#RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
#RUN pip install -r requirements.txt

#ENTRYPOINT [ "/bin/bash", "/home/entry-point.sh"]
#ENTRYPOINT  uwsgi --ini /home/hello.ini
#CMD ["uwsgi","--ini", "/home/hello.ini"] #启动uwsgi

nodejs的docker运行命令

docker run -d \
    --restart=always \
    -v /root/xy.api:/app \
    --network php-net \
    -p 3000:3000 \
    --name xyys.nodejs \   #镜像名
    xyys.nodejs \          #容器名
    node /app/app.js    #运行命令

php的docker运行命令

docker run -d \
--restart=always \
--name php-web \
--network php-net \
-p 9001:9000 \
-v /www/nginx/apps:/usr/share/nginx/html \
php:5.6-fpm

建立镜像命令

sudo docker build -t mqsub .

查看docker ip地址

#查看IP;
[root@localhost ~]# docker inspect myphp-fpm | grep "IPAddress"
 "SecondaryIPAddresses": null,
 "IPAddress": "172.17.0.3",
 "IPAddress": "172.17.0.3",
#创建一个docker网络,使用docker来连接多个容器
[root@localhost ~]# docker network create -d bridge php-net
#加入docker网络的容器执行 docker run 命令时要加参数:--network
--network php-net \

docker镜像image拉取速度过慢 - 仓库源:中科大速度最快(docker pull)

#创建、修改配置文件: /etc/docker/daemon.json 
vim /etc/docker/daemon.json          # 编辑daemon.json 
{
    "registry-mirrors": ["http://docker.mirrors.ustc.edu.cn"] 
} 
systemctl restart docker                  # 重启docker服务

如何改变

*强调

适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1
<think>好的,用户问的是如何使用FastAPI部署以及它能干什么。首先,我需要回顾FastAPI的基本信息和主要用途。FastAPI是一个现代的Python Web框架,用于构建API,支持异步请求处理,并且基于Starlette和Pydantic。它的优势在于高性能、易于使用和自动生成文档。 接下来,用户的问题分两部分:功能和部署。对于功能部分,我需要列举FastAPI的主要用途,比如构建RESTful API、WebSocket支持、数据验证等。部署部分则需要涵盖常见的部署方法,比如使用UvicornGunicorn作为服务器,Docker容器化,以及云平台部署如AWS、Heroku等。 然后,我需要给出具体的部署步骤。例如,安装FastAPIuvicorn,创建一个简单的应用示例,然后通过命令行启动服务器。对于生产环境,可能需要结合GunicornUvicorn worker,或者编写Dockerfile。同,要提到环境变量的设置和HTTPS的配置,比如使用Nginx反向代理和Let's Encrypt证书。 在解释过程中,需要注意用户可能的背景。如果用户是新手,可能需要更详细的步骤说明,比如如何安装依赖,如何运行命令。如果用户有经验,可能更关注最佳实践和性能优化。因此,回答中需要涵盖基础步骤和进阶部署方法。 可能的问题:用户是否了解异步框架?是否熟悉Docker或云部署?是否需要示例代码?根据用户的问题,他们可能希望得到直接的代码示例和部署命令,因此需要提供具体的代码块和命令行指令。 最后,相关问题的部分需要围绕FastAPI的功能和部署展开,比如询问异步处理、中间件使用、依赖注入、数据库集成等。这些问题可以帮助用户进一步深入学习和解决可能遇到的挑战。 总结回答结构:先介绍FastAPI的功能,再分步骤说明部署方法,包括开发和生产环境的不同配置,提供代码示例和命令,最后列出相关问题。</think><< **FastAPI 是什么以及它的用途** FastAPI 是一个基于 Python 的现代高性能 Web 框架,专门用于构建 API(应用程序接口)。它的核心特点包括: 1. **高性能**:接近 Node.js 和 Go 的速度(基于 Starlette 和 Pydantic)。 2. **异步支持**:原生支持 `async/await` 语法,适合高并发场景。 3. **自动文档生成**:自动生成 Swagger UI 和 ReDoc 文档。 4. **数据验证**:通过 Pydantic 实现请求/响应数据的类型校验。 5. **依赖注入系统**:灵活管理代码依赖。 **FastAPI 能用来做什么?** - 构建 RESTful API - 实通信(WebSocket) - 微服务架构 - 机器学习模型部署 - 与前端框架(React/Vue)配合开发全栈应用 --- **如何使用 FastAPI 部署** 以下是部署 FastAPI 的常见方法: **1. 本地运行(开发环境)** 安装依赖: ```bash pip install fastapi uvicorn ``` 创建 `main.py`: ```python from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} ``` 启动服务: ```bash uvicorn main:app --reload ``` **2. 生产环境部署(使用 Gunicorn + Uvicorn)** 安装 Gunicorn: ```bash pip install gunicorn ``` 启动命令(使用多进程): ```bash gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app ``` **3. Docker 容器化部署** 创建 `Dockerfile`: ```dockerfile FROM python:3.9 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["gunicorn", "-w", "4", "-k", "uvicorn.workers.UvicornWorker", "main:app"] ``` 构建并运行容器: ```bash docker build -t fastapi-app . docker run -d -p 80:80 fastapi-app ``` **4. 云平台部署(以 AWS EB 为例)** - 创建 `requirements.txt` 包含依赖项。 - 使用 Elastic Beanstalk CLI 部署: ```bash eb init -p docker fastapi-app eb create fastapi-env ``` **5. 配置 HTTPS** 使用反向代理(如 Nginx)并配置 Let's Encrypt 证书: ```nginx server { listen 80; server_name your_domain.com; location / { proxy_pass http://localhost:8000; } } ``` 然后通过 Certbot 获取证书: ```bash certbot --nginx ``` --- **解释** - **开发环境**:`--reload` 参数使得代码修改后自动重启服务,适合调试。 - **生产环境**:Gunicorn 作为进程管理器,结合 Uvicorn Worker 处理异步请求,提高并发能力。 - **Docker**:容器化部署保证环境一致性,适合 CI/CD 流程。 - **HTTPS**:通过 Nginx 反向代理和 Let's Encrypt 实现免费 SSL 证书,保障通信安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值