在百度云部署 https的fastAPI

2 篇文章 0 订阅
本文介绍了如何在Linux环境中安装Python3.9,包括依赖包的安装、编译和快捷方式创建。接着,通过pip3安装FastAPI并编写测试程序。还展示了如何配置SSL证书实现HTTPS接口,并使用nohup命令将服务后台运行。最后,讨论了如何管理和监控后台进程,包括日志记录和进程控制。
摘要由CSDN通过智能技术生成

安装 python3.9

1、先下载python3.9的依赖包

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel

2、下载python3.9安装包

下载:wget http://npm.taobao.org/mirrors/python/3.9.0/Python-3.9.0.tgz

如果安装时,没有wget命令,使用yum -y install wget进行安装

3、进行解压

如果下载时候没有进入/usr/local ,可以迁移文件到/usr/local

mv Python-3.9.0.tgz /usr/local/

输入cd /usr/local 进入local目录 输入

tar -zxvf Python-3.9.0.tgz

解压完成 进入cd python-3.9.0目录

输入./configure prefix=/usr/local/python3 进行配置

然后使用 make && make install 进行编译

如果在编译出现报错:

ModuleNotFoundError: No module named '_ctypes'

make: *** [install] Error 1

使用 yum install -y libffi-devel 安装后,重新进行配置和编译。

4、添加快捷访问的方式

ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3

ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip3

输入pip3 -V或者python3 -V查看版本

 使用输入python3

 
————————————————
版权声明:本文为CSDN博主「白手小弟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/SU19920923/article/details/124632330

安装FastAPI

 pip3 install fastapi[all]

我使用集成包来安装

 在vim编写一个测试程序

 注意:host=“0.0.0.0”才可以让外网访问。其实我不太明白,但是这样在本地就可以psotman访问了

利用ssh把证书文件传到服务器——scp命令

添加ssl证书成为https接口

执行uvicorn --help查看帮助

Usage: uvicorn [OPTIONS] APP

Options:
--host TEXT Bind socket to this host. [default:127.0.0.1]
--port INTEGER Bind socket to this port. [default: 8000]
-----------------此处省略1w字-----------------------------
--ssl-keyfile TEXT SSL key file  这里是证书的.key文件
--ssl-certfile TEXT SSL certificate file  这里是证书的.cer文件

我们只需要执行

if __name__ == "__main__":
    uvicorn.run("app.api:app",
                 host="l0.0.0.0",
                 port=8000, 
                 reload=True,
                 ssl_keyfile="./key.pem", 
                 ssl_certfile="./cert.pem")

即可 其中xxx.key 是证书key文件的路径,下同。

启动服务

 

 利用postman测试

 如果使用http协议就不能得到数据了

作为服务长期运行

有几次ssh窗口关闭后,api服务就停止了。

又参考了下面的资料

这个网上很多,下面是我从网上搜集的笔记,一直来也用这个方法,最近有朋友问到,我就放到这里,有需要的朋友也可参考!

Linux下把程序放到后台运行,相关的命令,如下:

1、把程序放后台运行,简单的话,只要在命令后面加一个“&”, 如: php test.php &

2、或者在运行命令后,按一下 Ctrl+Z,如运行 php test.php 后,按一下 Ctrl+Z

3、程序在后台运行了,但还是看到输出信息,可以用管道命令把输出定向到 /dev/null,如:php test.php >/dev/null

4、普通的输出信息看不到了,但还是看到一些信息,如错误信息等,需要再添加 2>&1 命令,如:php test.php >/dev/null 2>&1

5、程序在后台运行了,但退出当前会话,发现程序还是停止了,此时要用nohup命令,如:nohup php test.php >/dev/null 2>&1 

6、使用nohup后,应确保用exit命令退出当前账户,非常正常退出或结束当前会话,在后台运行的作业也会终止

7、命令在后台运行了,怎么查看?使用jobs命令可列出当前会话的后台任务,jobs -l 能查看到 PID,进而可以用kill终止某个任务

8、是终命令可能是:nohup php test.php >/dev/null 2>&1 &

上面命令中“2>&1”,这里的2和1是啥?参考如下:

其中 0、1、2分别代表如下含义:

0 – stdin (standard input)

1 – stdout (standard output)

2 – stderr (standard error)

(完)
————————————————
版权声明:本文为CSDN博主「ENVON」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/envon123/article/details/82144401

管理后台进程

现在有test.py程序要后台部署, 里面有输出内容

使用命令:
nohup python -u test.py > test.log 2>&1 &

复制代码

最后的&表示后台运行 2 输出错误信息到提示符窗口 1 表示输出信息到提示符窗口, 1前面的&注意添加, 否则还会创建一个名为1的文件 最后会把日志文件输出到test.log文件

查看
tail -f mytest.log如果要实时查看日志文件使用命令
cat mytest.log查看全部输出使用命令
删除
  1.查看进程 ps -ef |grep "test.py" --color

  2.删除进程 kill -9 pid
————————————————
版权声明:本文为CSDN博主「csuwubing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/csuwubing/article/details/113476768

比较奇怪的是使用ps -ef |grep "*.py" --color 不能显示所有python进程。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Linux上部署Python FastAPI程序通常涉及以下几个步骤: 1. **安装必要的软件**: - 首先,你需要确保已经安装了Python和pip(Python包管理器)。可以通过命令 `python --version` 和 `pip --version` 检查版本。 - 安装FastAPI和相关的依赖,如Uvicorn(web服务器)和Docker(如果打算使用容器化部署): ```bash pip install fastapi uvicorn[standard] ``` 2. **编写FastAPI应用**: 创建一个名为`app.py`的文件,写入FastAPI的基本结构,例如: ```python from fastapi import FastAPI app = FastAPI() async def hello_world(): return {"message": "Hello, World!"} app.get("/", hello_world) ``` 3. **运行应用**: 在终端中,你可以使用`uvicorn`启动FastAPI应用: ```bash uvicorn app:app --host 0.0.0.0 --port 8000 ``` 这将在本地主机的8000端口上运行应用。 4. **使用Flask或Gunicorn作为生产环境服务器**: 如果要部署到生产环境,推荐使用更稳定的Flask或Gunicorn,配合uwsgi、nginx等中间件。安装它们并配置合适的启动命令。 5. **容器化部署**: - 使用Dockerfile创建一个镜像,包含所有必要的依赖和应用代码: ```Dockerfile FROM python:3.9-slim-buster WORKDIR /app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"] ``` - 构建并推送到镜像仓库(如Docker Hub): ```bash docker build -t your-image-name . docker push your-image-name ``` 6. **设置负载均衡和监控**: - 可以使用Kubernetes、Nginx等服务来部署多个实例并进行负载均衡。 - 对生产环境进行监控,可以使用Prometheus和Grafana等工具。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值