Python Mysql程序报错:BrokenPipeError: [Errno 32] Broken pipe
检查python服务端的程序,发现存在错误日志,内容大致如下: python3.11/site-packages/pymysql/connections.py",line756, self._sock.sendall(data) BrokenPipeError:[Errno32]Brokenpipe Duringhandlingoftheaboveexception,anotherexceptionoccurred: 查看错误发生的地方,是在对mysql连接进行拼之后的关闭调用方法中报错。ifnotconnection.ping(False):connection.close() BrokenPipeError:[Errno32]Brokenpipe主要发生在父进程向子进程...[>>…]
tiangolo/uvicorn-gunicorn-fastapi中gunicorn_conf.py配置中的access_log_format无效
使用tiangolo/uvicorn-gunicorn-fastapi搭建的Python服务端程序框架,按照gunicorn的日志配置规则,其相关的常使用参数有4个,分别是accesslog,access_log_format,errorlog,loglevel。在配置文件gunicorn_conf.py中添加了如下的日志配置,但根本不生效。 #gunicorn访问日志配置 accesslog='/var/logs/gunicorn.access.log' access_log_format='%(h)s%(l)s%(u)s%(t)s' 我确定我添加的配置文件在gunicorn的启动命令中使用-c进行了加载,而且文件中配置的workers配...[>>…]
使用python开发的压测工具locust经验整理
压测工具有很多,以前也接触过不少,今天整理了一下新接触的locust工具。Locust是一个开源负载测试工具。可以定义用户行为,也可以仿真百万个用户。Locust是非常简单易用,分布式,用户负载测试工具。Locust是完全基于时间的,因此单个机器可以支持几千个并发用户。相比其他许多事件驱动的应用,Locust不使用回调,而是使用轻量级的处理方式gevent。Gevent是一个基于greenlet的Python的并发框架,以微线程greenlet为核心,使用了epoll事件监听机制以及诸多其他优化而变得高效。 &...[>>…]
Fastapi框架开发的python 后台API服务程序报错AttributeError: 'NoneType' object has no attribute 'read'
对一套pythonFastapi框架开发的python后台API服务进行压测,在SQL执行的python程序中出现了很多的报错。如下:AttributeError:'NoneType'objecthasnoattribute'read'AttributeError:'NoneType'objecthasnoattribute'settimeout'AttributeError:'NoneType'objecthasnoattribute'sendall'struct.error:unpack_fromrequiresabufferofatleast8 都是在site-packagespymysqlconnections.py文件中遇到的问题,经过几天的排查、思考最后发现是用户的请求进到python程序...[>>…]
Linux什么时候开始使用swap虚拟内存
某天看到服务器上的swap竟然有used数值,可一看服务器的内存free里还有不少呢,那Linux到底是什么时候开始使用swap虚拟内存?它是和一项系统配置相关的,/etc/sysctl.conf配置文件中的vm.swappiness这行。也可以直接使用命令cat/proc/sys/vm/swappiness查看。其默认值是60。即代表服务器的物理内存使用剩余60%时就开始使用swap,swappiness=0的时候表示最大限度使用物理内存,然后才启用swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面...[>>…]
网站扫描出的漏洞解决:检测到目标Content-Security-Policy响应头缺失
漏洞1:检测到目标Content-Security-Policy响应头缺失ContentSecurityPolicy(CSP)通过告诉浏览器一系列规则,严格规定页面中哪些资源允许有哪些来源,不在指定范围内的统统拒绝,可以服务器添加Content-Security-Policy头信息来指定规则解决。upgrade-insecure-requests;connect-src*会使安全进行升级,即一个http页面中所有调用的静态资源会自动升级使用https调用。但这样也会产生很多问题,如果调用的资源实际并不支持https的话,这时如果不是线上环境可以不理会,线上环境使用https就没有这样的问题了。在测试环境...[>>…]
亚马逊S3在跨区域调用时出现IllegalLocationConstraintException错误
之前使用亚马逊S3进行文件上传后,在python代码中使用boto3来调用S3提取预签名URl地址。代码如下:client_s3=boto3.client( aws_access_key_id='XXX', aws_secret_access_key='XXX')url=client_s3.generate_presigned_url( ClientMethod='get_object', Params={ 'Bucket':'BUCKET_NAME', 'Key':'CORRECT_KEY' },ExpiresIn=86400)但在使用中发现,可以正常下载目前S3上的一个桶中的文件,然而在下载其它桶的时...[>>…]
Nginx漏洞X-XSS-Protection/Content-Security-Policy响应头缺失等处理
使用一些漏洞扫描工具对服务器进行搜查,总得扫出一些漏洞,比如检测到目标X-...响应头缺失之类的,扫描后报了不少头漏洞问题,之前碰到过也进行了一些修复,主要是在nginx的配置中添加一些配置,见: http://04007.cn/article/1141.html这次又遇到一些,在这里补充一下这次碰到的漏洞问题及解决办法:1.检测到目标X-XSS-Protection响应头缺失HTTPX-XSS-Protection响应头是InternetExplorer,Chrome和Safari的一个特性,当检测到跨站脚本攻击(XSS)时,浏览器将停止加载页面。X-XSS-Protection响应头的缺失使得目...[>>…]
Linux中快捷获取文件完整路径的readlink命令
平常需要得到某个文件的完整路径时,我总是使用pwd查看下当前目录位置,然后复制这个目录位置再复制文件名来取得完整路径,一想有没有比较快的方法一下列出某个文件的完整路径,这样复制一次就可以了。readlink就可以实现我所说的这个问题。readlink是Linux系统中一个常用工具,本身是用来找出符号链接所指向的位置。常用选项如下:-f递归跟随给出文件名的所有符号链接以标准化,除最后一个外所有组件必须存在-e递归跟随给出文件名的所有符号链接以标准化,所有组件都必须存在-n不输出尾随的新行-s缩减大多数的错误消...[>>…]
Docker Swarm容器编排工具的使用体验
DockerSwarm是Docker官方的容器编排工具,它能使用户可以轻松地管理Docker集群。其和Mesos,Kubernetes具有相同的功能,DockerSwarm是Docker的本机集群和编排解决方案,能自动管理容器,自动处理服务的调度和负载均衡,无需手动配置,它包含在DockerEngine中,所以在安装Docker后,就已经有了DockerSwarm。以下是运行DockerSwarm模式的步骤:安装好Docker之后就可以使用,启用DockerSwarm模式: #initdockerswarm时如果存在多个IP就会报错,需要指定IP。--advertise-addrstring初始化一个新的...[>>…]