随笔分类 - python 运维开发
摘要:一、概述 所谓的中间件,其实和我们bottle中的中间件作用是一致。有些方法或操作需要在所有路由之前执行,比如要加一个http访问的拦截器,可以对部分接口API需要授权才能访问的接口进行验证之类的。 FastAPI提供了一个@app.middleware("http")可以做到类似上面的拦截功能。其
阅读全文
摘要:一、概述 HTTPException异常抛出 再之前Bottle 中其实有一个就是HttpError异常类,在FastAPI也存在这么一个HTTPException。比如: 在上面的代码中,通过判断item_id是不是存在于items来主动的抛出了一个404的错误 访问一个错误的url 我们查看HT
阅读全文
摘要:一、概述 使用response_model定义 请求一个接口返回来我们客户端可见的东西都是所谓的响应报文,如响应头,响应码,响应内容等。 通常不会那么傻的用户输入什么就返回什么。以下的官网示例纯粹的演示看: json参数 通常再定义我们的API返回响应的时候,一般是返回固定JSON格式的,所以可以直
阅读全文
摘要:一、概述 一般对于Request Body不会通过get提交,对于get提交的参数一般称为是查询参数。所以,如果是通过POTS,PUT等方式提交的参数信息,我们一般是放到Request Body来提交到我们的后端。 对于如何接收和校验请求体,FastApi提供的形式是使用:from pydantic
阅读全文
摘要:一、概述 路由方法有 GET, POST, PUT, PATCH, DELETE 和 OPTIONS。 二、路由Route上参数获取和校验 一般我们的路由分会静态和动态,静态路由就是参数是固定写死,也就是访问地址是写死的,而动态地址,就是需要动态的生成,类似简书的博文的地址94710ed35b92就
阅读全文
摘要:一、简介 FastAPI 是一个高性能 Web 框架,用于构建 API。 主要特性: 快速:非常高的性能,与 NodeJS 和 Go 相当 快速编码:将功能开发速度提高约 200% 至 300% 更少的错误:减少约 40% 的人为错误 直观:强大的编辑器支持,自动补全无处不在,调试时间更少 简易:旨
阅读全文
摘要:一、概述 本实验基于CentOS7.6 操作系统,总共5台设备,两台做后端web服务器,两台做lvs和keepalived,一台做客户机,实验以LVS(DR)+Keepalived和LVS(NAT)+Keepalived两种模式来做双机热备份,实验环境拓扑如下图所示: 从架构可以看出来,从用户的角度
阅读全文
摘要:一、概述 讲正文开始前先回顾一下以往传统的代码部署方式。 通常运维人员在接到代码(新项目)上线的任务前都要做大量的准备工作,包括:物理主机、虚拟机、代码运行环境、数据库安装配置、各种帐号创建,、运行后期的系统监控、应用的日志收集,性能优化等一系列的工作。 想一想这个流程不是很复杂但是很繁琐,效率低下
阅读全文
摘要:一、准备工作 安装jdk 解压jdk mkdir /data tar zxvf jdk-8u211-linux-x64.tar.gz -C /data/ 添加环境变量 vim /etc/profile 最后一行添加 set java environment JAVA_HOME=/data/jdk1.
阅读全文
摘要:一、概述 最近发现办公室有一个感测器网关,偶尔会掉线,重启之后,就正常了。 手动操作过程如下: 说明:先telnet进去,输入用户名和密码之后,执行ps命令。如果有/usr/app/bin/app进程,说明设备正常,否则就需要重启。 但是手动操作比较麻烦,需要使用python登录网关设备,检测是否正
阅读全文
摘要:一、概述 最近遇到一个需求,需要使用office365邮箱发送邮件,使用SSL发送会失败,必须使用TLS加密协议才能发送成功。 二、完整代码 使用类封装了一下,功能如下: 1. 支持附件 2. 支持多个发件人 3. 执行TLS MailTools.py 注意:请根据实际情况,修改邮件账号和密码。
阅读全文
摘要:一、概述 对于生产环境,需以高可用的配置安装 Rancher,确保用户始终可以访问 Rancher Server。当安装在Kubernetes集群中时,Rancher将与集群的 etcd 集成,并利用Kubernetes 调度实现高可用。 为确保高可用,本文所部署的 Kubernetes 集群将专用
阅读全文
摘要:一、概述 Rancher和k8s都是用来作为容器的调度与编排系统。但是rancher不仅能够管理应用容器,更重要的一点是能够管理k8s集群。Rancher2.x底层基于k8s调度引擎,通过Rancher的封装,用户可以在不熟悉k8s概念的情况下轻松的通过Rancher来部署容器到k8s集群当中。 为
阅读全文
摘要:一、概述 在上一篇文章介绍了nginx+php-fpm,链接如下: https://www.cnblogs.com/xiao987334176/p/12918413.html nginx和php-fpm是2个独立的镜像,在实际环境部署过程中,发现配置比较麻烦,排错比较耗费实际。 因此,需要将ngin
阅读全文
摘要:一、概述 1、理解Ingress 简单的说,ingress就是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上。Ingress相当于nginx、apache等负载均衡方向代理服务器,其中还包括规则定义,即URL的路由信息,路由信息得的刷新由Ingress c
阅读全文
摘要:一、概述 启用php-fpm状态功能 php-fpm和nginx一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。为了后续的Prometheus监控,我们需要先了解php-fpm状态页是怎么回事。 在上一篇文章中,已经开启了php-fpm状态,链接 如下: htt
阅读全文
摘要:一、概述 环境介绍 操作系统:centos 7.6 docker版本:19.03.8 ip地址:192.168.31.34 本文将介绍如何使用单机部署Nginx+PHP-FPM环境 二、Nginx+PHP-FPM 拉取镜像 docker pull gaciaga/nginx-vts:latest d
阅读全文
摘要:一、概述 国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务。 二、配置加速地址 创建或修改 /etc/docker/daemon.json: Docker Hub 镜像加速器列表 镜像加速器镜像加速器地址专属加速
阅读全文
摘要:一、概述 由于所有业务只有一个公网IP入口,无法统计到每个业务的流量带宽,好在nginx上通过域名进行业务区分,可以借助nginx-module-vts模块来实现需求。本文将主要用到以下几个模块和工具:nginx-module-vts: Nginx virtual host traffic stat
阅读全文
摘要:一、概述 使用alpine镜像构建了一个oracle jdk的镜像,运行java业务时,查看日志,显示中文乱码。 但是,基于Alpine Linux的Docker基础镜像的镜像文件很小,也有代价: 把glibc替换为了musl libc,但是musl libc不支持国际化和本地化, 所以你想显示中文
阅读全文