使用最新的Certbot在Ubuntu服务器上进行https免费证书申请和安装
多年之前已使用过certbot进行证书操作:http://04007.cn/article/507.html,最近服务器进行了升级,所有的服务都使用了docker服务。但是certbot在docker下面操作遇到了问题。于是在裸机中搭建了一个nginx服务,在这个层面设置https443服务转发给后端的docker容器,因此今天重新来操作certbot,certbot这几年也进行了功能升级了,比之前稍微复杂了一点,比如增加了snap工具,以前是没有的。好吧,开始吧。 如果之前安装过certbot的工具之类的东西,需要先进行删除,Re...[>>…]
FastAPI中的depends中的类变量导致跨请求会话传递数据的问题
使用FastAPI搭建了一个python服务端项目里,在route的请求处理方法中使用depends来判断用户的登录状态。遇到了depends中的类变量导致跨请求会话传递数据的问题。 依赖项是FastAPI提供的简单易用、功能强大的依赖注入系统。可以让开发人员轻松地把组件集成至FastAPI。依赖注入非常适合共享业务逻辑、共享数据库连接、实现安全、验证、角色权限等场景,这些场景能复用相同的代码逻辑,而使用依赖注入,将代码重复最小化。依赖项可以是一个函数,也可以是一个类,官方的...[>>…]
git创建和拉取项目分支
git创建分支,可以通过git管理平台可视化操作创建,也可以通过gitbash命令行下创建:1.是通过git管理平台创建:进入gitlab管理平台具体的目标项目中,在项目名称下能看到如“253次提交2个分支0个标签6.9MB文件6.9MB存储"的统计信息,点击其中的*个分支处即能看到分支的管理页面,直接在界面上点击“新建分支”,输入Branchname并选择createfrom(默认就是master)后点击创建分支createbrance即可。2.通过gitbash命令行下创建:#当前处于master主干分支上gitbranchtestgitadd.gitcommit-m‘新增分支’gitpushorigintest...[>>…]
对市场上几家IDaas产品厂商的了解
单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,即用户只需一次登录就可以访问所有相互信任的应用系统,减少了由登录产生的时间消耗,辅助了用户管理,是当前企业内部以及企业面向用户的登录首选方式。 之后SSO慢慢发展变成了企业的IAM服务。IAM(IdentityandAccessManagement的缩写),即“身份识别与访问管理”,具有单点登录、强大的认证管理、基...[>>…]
Python全局常量即跨文件全局变量的替代实现方法
常量是不变的变量,在Python中,常量通常用大写的变量名表示。但事实上,Python并没有严格的常量概念。python有内置的常量,而且只有6个,分别是True、False、None、NotImplemented、Ellipsis、__debug__。在Python中并没有直接的方法或命令去声明一个全局常量。甚至python中就没有关于全局常量数据类型的定义。Python对变量关键词的查找顺序为:局部命名空间->全局命名空间->内置命名空间。找不到变量名,它将会放弃查找并引发一个NameError异常。其中内置名称(built-innames)是Pyt...[>>…]
FastAPI获取和记录每个http请求(包括post数据实体)
在使用FastAPI的时候,我想对每个请求进行记录,包括框架接口返回的422类参数不符合要求的接口,同时把所有请求的原始post数据和返回的json等数据进行记录,之前在这篇文章:http://www.04007.cn/article/957.html里到是提到了可以使用request_exception_handler在异常的时候获取请求实体,但不适合正常的请求中处理,所以这次需要寻找新的办法。 找了不少办法,目前还是下面的这个办法比较好用。首先我们是使用FastAPI官网的middleware中间件,注册一个http中间件,...[>>…]
docker容器添加自定义hosts重启丢失问题
在docker容器中手动修改了hosts增加了一些域名的解析,但对容器进行重启后hosts全部丢失了。因为容器中的/etc/hosts,、/etc/resolv.conf、/etc/hostname这三个文件并不存在于镜像中,而是存在于宿主机的/var/lib/docker/containers/目录中,在重启docker容器时会通过mount的形式将这些文件挂载到容器内部。因此会覆盖容器中对这些文件的手动修改。 如果可以通过指定DNS来解决的话,可以在启动容器时添加选项--dns=x.x.x.x来指定容器内的dns,也可修改docker的配置文...[>>…]
ubuntu中Crontab执行docker exec后台任务失败的问题
crontab任务中添加了几个后台任务,执行几天后发现几个业务任务没有执行,检查一下看到前几条后台任务正常,但涉及到使用dockerexec执行的后台任务就没有结果了。02***dockerexec-itsphinx/bin/bash-c'/bin/indexer-c/usr/local/etc/csft.confbase_04007cn--rotate'>>/opt/logs/sphinx.log; 在crontab配置中打开crontab的日志,然后就可以在对应的文件/var/log/cron.log中查看crontab的日志。 #vim/etc/rsyslog.d/50-default.conf cron.*/var/log/cron.log #ca...[>>…]
关于Ubuntu服务器的时间同步设置
首先我们检查一下服务器的时区设置和当前时间值,获取/etc/timezone配置以及使用date命令查看当前时间。 root@iZ2ze7n2ynw18p6bs92fziZ:~#cat/etc/timezone Asia/Shanghai root@iZ2ze7n2ynw18p6bs92fziZ:~#date WedDec2114:03:36CST2022 确保/etc/timezone文件中当前时区设置为中国时区,如果不对则编辑配置文件修改为上述值。在date命令的输出中,可以看到当前的时间值是正确的,其中的CST可视为美国、澳大利亚、古巴或中国的标准时间。此处是中国的标准时间...[>>…]
一个好用的图片验证码python程序
要做一个图片验证码,不想自己造轮子,就到网上找一些代码或者项目,找了一些代码都不大好使用还需要调试,git上的一些项目要么累赘,要么不好用,最后找到了这个simpel_captcha项目,简单轻巧又好用。我这里使用的是FastAPI框架,这套程序也非常方便地结合FastAPI或者starlette中的StreamingResponse返回图片验证码,分享一下: GITEE地址:https://toscode.gitee.com/antonizhu/simpel_captcha 里面就是captcha和img_captcha两相模块,capt...[>>…]