东拉西扯

张戈博客正式启用全新个性域名:zhang.ge

Docker

Nexus3最佳实践系列:搭建Docker私有仓库

Docker

零门槛!基于Docker快速部署ES集群

网站建设

分享张戈博客的WordPress优化方案,缓解国内云服务器配置低下的问题

Docker

Docker新手入门实战教程

Docker

基于Docker部署ceph分布式文件系统(Luminous版本)

东拉西扯

浅谈个人博客网站or屌丝vps服务器暴露真实IP的危险性

WEB应用

APISIX插件开发之精细化限速插件

网站建设

如何正确配置CDN高速缓存,避免越用越慢的尴尬

WEB应用

APISIX插件开发之Kong网关HMAC鉴权插件(附客户端SDK)

WEB应用

APISIX运维优化之解决长尾请求(耗时抖动)问题

7月9日 · 2026年

Beggar:让 CodeBuddy 多 Agent 协作研发成本直降 90% 的开源套件

311 0
一套可复用的多 Agent 配置方案,通过模型差异化分工 + 双 Reviewer 交叉审查 + Review Gate 自动升级,在保证质量的前提下大幅降低 AI 编程成本。为什么需要 Beggar如果你正在用 CodeBuddy Code 做 AI 辅助开发,大概率遇到过这样的困境:成本焦虑:所有任务都用最强模型?太贵。都用便宜模型?质量没保障。单模型盲...
1月16日 · 2025年

FastTTS:支持私有化部署和源阅读无缝对接的语音合成服务

1266 0
概述长话短说,最近发现微软的语音服务莫名扣费了,然后看着国内云服务动辄几千上万的语音合成服务资源包,一阵苦涩。搜了下,发现挺多基于 edge-tts 的白嫖项目,试用了下确实能用,就是和源阅读对接的体验有待提高。因此决定自己封装一个更适合源阅读 APP 的语音合成服务,以下是介绍,有需要的直接拿。项目介绍本项目基于 Edge-TTS 和 FastFlyer 开发框...
8月17日 · 2022年

gRPC开发过程中遇到的问题记录

4117 4
最近我在改造手头负责的一个HTTP Restful API服务,集成对gRPC协议(在鹅厂叫tRPC,是gRPC的本土衍生版本)的支持。由于是从0学习这个协议,因此也踩了不少坑,这里用一篇文章来记录下,希望可以帮助到同样从0学习gRPC的朋友。列表参数赋值老的Rest接口中,大量用到了列表参数,看了下pb协议,给这个参数定义如下:message Foo { rep...
8月3日 · 2022年

SQLAlchemy因密码含有@符号连接MySQL失败

3651 0
最近新来的实习生小伙子在重构一个我入职时开发的老系统,这个系统之前用的是Python twisted框架开发的,这次重构希望可以换到FastAPI,也就是我上一篇文章分享的Flyer开发框架。小伙子很给力,花了几天自学了下FastAPI和Flyer就开始开发了,结果用Flyer框架的时候,连接MySQL报错如下:sqlalchemy.exc.OperationalError: (...
6月17日 · 2022年

Flyer:基于FastAPI的轻量级API开发框架

4409 0
概述我们经常会听到“不会开发的运维不是个好运维”,确实在运维工作当中,娴熟的开发经验能让运维工作如鱼得水,事半功倍!高级的运维除了需要精通Shell脚本编程之外,最好还需要掌握一门高级语言,比如Python、Golang、PHP、Lua等。高级语言除了可以解决一些更复杂的运维场景,还可以帮助我们更好的理解业务,做好业务运维,毕竟知己知彼才能百战不殆。经常看到很多运维同学写接口通常...
3月18日 · 2022年

APISIX高级路由之301/302跳转配置

4400 0
我们这有个内部网站同时支持2个域名访问,最近因升级需求希望统一到一个域名,即老域名做一个301跳转到新域名。这个在Nginx直接配置一个if逻辑,判断是老的host并跳转到新的域名即可。那这个Case在APISIX里面应该怎么配置呢?看了下APISIX文档,发现有两种跳转插件:redirect和response-rewrite,前者只能跳转uri不包含协议主机部分,后者可以通过修改返回头...
3月1日 · 2022年

解决paramiko使用invoke_shell交互式命令超时问题

6078 1
最近手头有个业务是基于Apache Karaf开发的,运行在K8S里面,跑了一堆的bundle,偶尔里面挂一两个bundle容器是没什么感知的,但是业务可能会局部异常。要推动业务优化的话,周期就会拉得很长,因此先弄个定时拨测来监控下bundle是不是都在正常运行的。看了下要查看Karaf里面的bundle需要ssh进去执行bundle list命令,因此基于之前的经验利用Python p...
2月25日 · 2022年

分享一个APISIX网关返回502的典型案例

3281 1
APISIX为了提高性能,默认会打开keepalived特性,预设会话保持时长为60s,我们在部署网关的时候也保留了这个优化特性,恰好我的上游服务基于Gunicorn+FastAPI开发框架,也开启了keepalived,会话保持默认设置为5s。这样就有问题了:网关和上游服务建立连接后60s内,新请求会继续复用这个连接,但是上游却在5s后主动关闭了连接,因为网关将新请求转发给上游时,才发现连接已经被关闭了,因此就出现了上述报错。...
12月23日 · 2021年

解决百度搜索出现安全中心提醒

2566 4
自从博客几乎断更之后,就已经很少关注SEO了。昨天机缘巧合在百度搜了下“zhang.ge”这个国外线路域名的时候,居然发现有如下提示:纳尼?还有这种事情?但是搜索“zhangge.net”却没有,看起来应该是误报。点击打开会有如下提示:看到有个“申请解封”按钮,就点过去,填写表单提交了下:结果,没等多久,大概之后个把小时就收到了百度发来的审核通过的...
5月7日 · 2017年

分享一个自写的Python远程命令和文件(夹)传输类

11408 37
最近在跟一个自动化发布平台的建设事项,其中Linux系统的远程控制通道则由我独立开发完成,其中涉及到了Linux系统远程命令和文件传输操作。因为之前写Linux系统密码管理系统的时候,用的是Paramiko的SSHClient。所以,我这次依然采用Paramiko来做实现,代码虽短,说起其中的坑,我也是一把辛酸一把泪的填上了。先上完整代码:# -*- coding: utf-8...
3月5日 · 2016年

WordPress发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存

10870 88
一、部署代码完整的php代码如下:/*** WordPress 发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存(首页和当前文章) By 张戈博客* 文章地址:https://zhang.ge/5089.html* 转载请保留出处,谢谢合作!**//* 需要填写你的密钥,访问 https://console.qcloud.com/capi 获取 Secr...
11月1日 · 2015年

太狗血了!分享一下张戈博客百度收录排名异常的检查记录

10303 45
关注张戈博客以及喜欢转载张戈博客原创博文的朋友,应该都发现张戈博客现在的百度收录异常惨淡!而且,我还叮嘱哪些喜欢转载我博客博文的朋友,不要转载半个月内发布的文章,因为我以为几个月来百度不收录、排名下降严重的是因为我先后更换主题-->换用360网站卫士-->文章被人快速转载所致。我发现最蛋疼、最诡异的是,我发布的文章几个月都没被收录!!!然后我也默默的在心里把度娘骂了几个...
脚本编程阅读更多
5月7日 · 2017年

分享一个自写的Python远程命令和文件(夹)传输类

11408 37
最近在跟一个自动化发布平台的建设事项,其中Linux系统的远程控制通道则由我独立开发完成,其中涉及到了Linux系统远程命令和文件传输操作。因为之前写Linux系统密码管理系统的时候,用的是Paramiko的SSHClient。所以,我这次依然采用Paramiko来做实现,代码虽短,说起其中的坑,我也是一把辛酸一把泪的填上了。先上完整代码:# -*- coding: utf-8...
1月10日 · 2014年

Win平台Web访问白名单设置脚本(IP安全性原则)

4287 0
最近老是有用户申请开通某网站的访问权限,我接手之前浏览权限的设置方法是修改tomcat下的server.xml配置文件,通过定义allow="IP.."的访问规则来控制浏览权限。这种方法有个很不好的地方,每加一次权限,你就得重启一次tomcat,用户老是挤牙膏一样,一次一两个IP的发邮件来申请开通,不但很烦人,而且对正在使用的用户体验也非常的糟糕!于是我决定要改善这个糟糕的局面。在Linu...
11月5日 · 2014年

Linux系统防CC攻击自动拉黑IP增强版Shell脚本

34263 53
最新更新:张戈博客已推出功能更强大的轻量级CC攻击防御脚本工具CCKiller==>传送门前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个问题,但是还是想暂时取消CDN加速和防护来测试下服务器的性能优化及安全防护。前天写的Sh...
1月16日 · 2025年

FastTTS:支持私有化部署和源阅读无缝对接的语音合成服务

1266 0
概述长话短说,最近发现微软的语音服务莫名扣费了,然后看着国内云服务动辄几千上万的语音合成服务资源包,一阵苦涩。搜了下,发现挺多基于 edge-tts 的白嫖项目,试用了下确实能用,就是和源阅读对接的体验有待提高。因此决定自己封装一个更适合源阅读 APP 的语音合成服务,以下是介绍,有需要的直接拿。项目介绍本项目基于 Edge-TTS 和 FastFlyer 开发框...
5月16日 · 2014年

百度开放适配&360移动适配专用Sitemap格式转换工具

13502 52
此工具可将标准版的sitemap.xml转换成电脑版—移动版的对应关系sitemap,用于百度开放适配&360移动适配的文件提交。工具用批处理制作,仅起到批量转换的辅助功效,免去手动制作的麻烦!可以用于移动适配的提交测试!张戈不会php,而shell又不能普遍适用,所以只能挑了自己比较拿手的批处理来制作这个辅助工具!因为批处理的局限性,做出来的工具只能用于尝鲜测试使用!或长期不更新的CMS企业网站来提交移动适配sitemap。另外,响应式站点亦无需提交适配!...
7月1日 · 2015年

Windows下bat批处理脚本使用telnet批量检测远程端口小记

14096 21
多年没写过批处理了,来新公司的第一个case却是需要写一个bat脚本,批量更新采集agent的配置文件,其中就涉及到远程IP的端口检测。本以为会和Linux一样可以简单判断:echo q|telnet -e \'q\' $ip $port && echo "$ip:port 通"||echo "$ip:port 不通"结果发现Windows下面telnet退出并没有执行...
10月2日 · 2016年

Python+Shell脚本结合阿里云OSS对象存储定时远程备份网站

18129 51
导读:毋庸置疑,数据备份是网站可持续性运营中至关重要的一个工作,如果还没有做任何备份机制的网站,建议尽早完善,莫要等到追悔莫及。本文将分享一个安全稳定、快速可靠、花费廉价的备份方案。一、优点分析张戈博客在2年前已经分享过一篇关于网站备份的文章:《Linux/vps本地七天循环备份和七牛远程备份脚本》,今天将再次结合这个脚本,将网站数据通过阿里云内网备份到阿里云OSS。对于阿里云...
6月16日 · 2017年

Python远程控制模块paramiko遇到的问题及解决记录

6964 17
最近一直在开发自动化运维发布平台,底层命令行、文件通道主要基于paramiko模块,使用过程中遇到各种各样的问题,本文主要用于收集问题及解决记录,以备后续使用。一、Error reading SSH protocol banner连接错误这个关键词,在百度、谷歌一搜一大把的提问,也有少部分给出了解决方案,但是最终都无法解决,我经过不断尝试和解读paramiko源码,终于搞定了这个问题,在此...
6月26日 · 2014年

Linux操作系统DNS解析(nameserver)监控脚本

9571 20
一、起因昨天,开发组兄弟发现resin日志出现不少支付宝业务报错信息,用户用支付宝购买了产品,钱到账后公司系统却未返回支付成功状态!这还得了?用户明明支付成功了,结果却显示未到账!!!必须赶紧解决,用户投诉是小,用户流失就大了!仔细分析日志后,发现是解析支付宝接口域名(mapi.alipay.com)时出现延时,导致获取不到支付成功的返回信息!检查发现OpenSUSE的name...
12月23日 · 2013年

Shell下制作自解压安装包,实现脚本的简单加密

5965 1
申明:以下内容大部分搜集于网络,由个人整理成更容易理解的简明教程!一、原理阐述在linux下可以用几个最基本的命令制作一个自解压的程序。其原理是:利用cat 命令可以将两个文件连起来(用>>追加也能达到同样效果),前一个文件是shell脚本,负责执行解压和安装;后一个文件是一个压缩包。把这两个文件通过cat连接成一个新的可执行文件,前面是解压程序,后面是压缩包,当你执行...
操作系统阅读更多
4月4日 · 2014年

Linux优化方法收集与整理

2499 15
之前一直有博主要求整理下VPS主机优化方法,那么如果你是VPS主机(Linux),可以尝试一下了,尤其是linux系统的内核参数优化。一、增加SWAP分区VPS(Virtual Private Server 虚拟专用服务器)技术,将一部服务器分割成多个虚拟专享服务器的优质服务。每个VPS都可分配独立公网IP地址、独立操作系统、独立超大空间、独立内存、独立执行程序和独立系统配置等。下...
9月29日 · 2014年

Linux网络实时流量监测工具iftop的安装使用

8617 1
概述:网络管理是基础运维中一个很重要的工作,在看似平静的网络运行中,其实暗流汹涌,要保证业务系统稳定运行,网络运维者必须要了解网络的流量状态、各个网段的使用情形,带宽的利用率、网络是否存在瓶颈等,同时,当网络发生故障时,必须能够及时发现问题,迅速定位问题,进而解决问题,这就需要一些网络监测工具的辅助,本节将介绍一款小巧但功能很强大的网络实时流量监测工具iftop。一、iftop概述ifto...
6月16日 · 2014年

解决SecureCRT的vim中为下划线而无高亮问题,附最佳护眼配色方案。

13622 23
今天第一天上班,发现新公司也是用的最熟悉的SecureCRT终端。领到自己的办公电脑后,第一件事就是下载并安装了SecureCRT 7.1。并设置了以前最喜欢的配色(下文会有介绍)。公司的web软件用的是rensin,以前还真没怎么接触过,仔细拜读了前辈写的超级精简的一套部署教程,发现完全可以写一个懒人脚本一键搞定,于是动手写脚本,顺便进一步熟悉下resin。写了一半发现以前熟悉的...
12月12日 · 2015年

解决Linux修改密码报PAM authentication failed错误

14411 25
最近接到一个运维开发任务,需要开发一个帐号管理系统,对手头三千多台Linux服务器的root帐号进行批量系统的管理,实现定期修改root为随机密码并加密存储,并向运维管理WEB前台提供密码查询解密接口等功能。刚开始,我基于php+ssh2_exec开发了一套雏形。基本功能都实现了,结果老大说这里的运维就我稍微会点php,后面可不好维护。本来也被我说服了,因为写都写好了,难道要重构?...
12月30日 · 2013年

Linux从零到高手的进阶心得

1625 2
从2006年毕业至今,从事IT行业已经接近8个年头。一路走来有很多心路历程和技术心得都写在了51CTO的博客中,不少文字现在看来已显稚嫩,但是这正是我真实的成长之路。这八年,从最基础的网络管理员开始,从最下层的IT工作比如说做水晶头做起,慢慢的走过国企、干过外企,做过网络管理员、系统工程师、项目经理、Linux讲师,经历过众多重大的项目(包括政府部门、国家重要民生相关项目),流过汗熬过夜,...
1月23日 · 2014年

如何确保NFS服务安全

1737 4
上一篇博文《Redhat设置NFS挂载的简单步骤》,其中摘录了一段nfs中fuser的使用,索性将其全部发出,以供参考。对于NFS的安全问题,我们是不能掉以轻心的。那么我们如何确保它的安全呢?这里我们首先我们需要分析一下它的不安全性。看看在那些方面体现了它的不安全。NFS服务安全性分析:不安全性主要体现于以下4个方面: 1、新手对NFS的访问控制机制难于做到得心应手,控制目...
3月8日 · 2014年

Linux:awk命令详解

12159 27
简单使用:awk :对于文件中一行行的独处来执行操作 。awk -F :\'{print $1,$4}\'   :使用‘:’来分割这一行,把这一行的第一第四个域打印出来 。AWK命令介绍awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息 1. 调用awk...
1月17日 · 2014年

Linux基础知识之xargs命令

5142 18
昨天在给服务器做年终“大扫除”整理时,发现有个目录下因为文件过多而删除失败,最终使用xargs才搞定,于是顺便来记录下。在执行某些命令时,当Linux某个目录下文件过多就会因为“参数列表过长”而报错无法执行。比如,我要清空/var/spool/clientmqueue/下的庞大数量的临时文件,如果直接执行 rm  -f  *,有时就会会出现“参数列表过长”的错误提示,因为linux下一般的...
7月10日 · 2014年

服务器日志备份超节省空间的思路

2165 11
这两天,监控频繁发来服务器磁盘空间90%+的报警,打扰睡觉不说,塞得满满的总是不舒服的。刚来公司才20天,对于部分细节上的运维了解得还不是很到位,比如这备份机制是怎样的?于是,将几台空间老报警的服务器的文件及任务计划仔细看了下,总算是摸清楚了这新公司的重要日志的备份机制了:由于最终存储备份的2台机器用的是增量同步备份,从而越来越大。而日志要留着以备查验,只好考虑做压缩备份了。...
8月7日 · 2014年

Linux系统yum命令安装软件时保留(下载)rpm包

9686 4
昨天在部署zabbix监控的时候,遇到一个问题:监控服务器处于无外网状态,在线安装不可用。而某些依赖包度娘或谷姐搜索起来也挺呛人的!于是想到一个办法,利用有外网的服务器的yum命令来安装这些软件,并自动保留安装包即可。于是就有了以下的转载教程:一、让yum命令下载RPM包,而不安装。yum是一个优秀的软件获取与系统更新的工具,主要应用于redhat系列的发行版本上。但是这样一个优秀...
WEB应用阅读更多
10月28日 · 2021年

APISIX高级路由之通过Body参数转发请求

5484 0
APISIX的高级路由非常厉害,可以基于任意变量来做转发路由,比如可以基于Header、cookie、querystring参数等。而我们这里历史上有个非常变态的用法:基于Body里面某个参数的值来路由,即不同的值要转发到不同的后端IP:PORT(这个问题主要是因为服务拆分时偷懒,没有推动客户端修改请求留下的尾巴)。...
5月2日 · 2016年

WordPress启用memcached动态缓存以及报错解决

22653 87
张戈博客目前用的是Nginx的fastcgi缓存方案,属于纯净态缓存模式,所以前台登录态什么的基本都没了。如果要兼顾前台登录态,又想速度快,有没有解决方案?之前在分享张戈博客优化方案时提到,要实现网站轻度缓存,方案还是有的,比如 DB Cache Reloaded、Redis、memcached等。最近恰好遇到一个数据缓存需求,因此尝试了下memcached方案,下面简单分享下我的...
12月2日 · 2015年

PHP7.0正式版编译安装升级及WordPress问题解决分享

11683 30
盼望以久的PHP 7.0正式版,终于在今天发布了!官方给出的新特性如下:PHP 7.0.0 comes with new version of the Zend Engine with features such as (incomplete list): Improved performance: PHP 7 is up to twice as fast as PHP 5.6...
2月3日 · 2018年

小网站最简单实用的动静分离优化方案

17971 45
很久没写文章了,博客已经长草了,今天挤点时间分享一些小干货,也是回应一下不少站长朋友的留言问题。有不少站长朋友问张戈博客的静态文件为啥是另外一个域名?有啥好处?如何实现?其实这算是一种动静分离的做法,不过我这里用了偷懒的办法实现,而非彻底的动静分离,不过最终效果的区别并不大。先啰嗦一下动静分离的概念和好处。一、动静分离我们的网站简单来说分为2种数据...
2月24日 · 2018年

Haproxy进阶管理:命令行控制后端节点上下线

2621 11
很多业务系统都用到了Haproxy这个高性能反向代理负载均衡器。在日常运维当中,Haproxy后端节点的上(接入)、下(剔除)线操作绝对是家常便饭,而且人工重启的时候经常有胆颤心惊的感觉。下面分享一种命令行操作Haproxy后端节点平滑上下线的技巧。一、新增配置Haproxy自带了一个非常实用的管理页面,我们可以在harpxoy.cfg新增如下配置,开启Haproxy监控管理页面功...
4月29日 · 2015年

Nginx发布1.9.0版本,新增支持TCP代理和负载均衡的stream模块

2908 10
昨天在公司微信群,CTO分享了这个消息,对运维来说以后基于TCP协议的后端业务的高可用又多了一个新的选择,实在是棒极了!一直以来,Nginx 并不支持tcp协议,所以后台的一些基于TCP的业务就只能通过其他高可用负载软件来完成了,比如Haproxy。这算是一个nginx比较明显的缺憾。不过,在1.90发布后这个认知将得到改写:2015-04-28ngin...
5月23日 · 2014年

菜鸟教程:Ngnix安装详解

5384 9
今天,不知道写什么,就找来一篇很详细的Nginx安装教程,“滥竽充数”了,另外后面附上马哥关于nginx讲解的核心视频教程。Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рам...
11月3日 · 2021年

APISIX插件开发之精细化限速插件

3988 0
在实际业务场景中,APISIX限速太笼统,达不到业务要求,最终,我们自己在limit-count插件基础上进行改造,重新设计一个限速机制,能够针对不同的服务给不同的Consumer设置差异化的访问限速,满足生产环境更精细化的限速需求。...
12月6日 · 2014年

php平滑重启nginx,彻底清除WordPress的静态缓存

7623 9
每一次分享技术文章,都是基于自己的痛点,基于自己的需求。这次也一样,所以分享具体方法之前,我先说一下我这次的需求与痛点:一、需求痛点在博客集成了代码版缓存功能之后,为了方便在前台清理页面缓存,我特意写了ajax清理缓存的功能(相关文章)。这个功能写好之后确实可以正常工作。但是,为了让网站加载速度提升到极致,我还在nginx里面加了类似于WP Super Cache的mod_rewr...
4月12日 · 2019年

惊现Haproxy重复添加X-Forwarded-For问题(附官方解决办法)

5917 7
最近在配置Haproxy代理的时候发现一个很有意思的事情:Haproxy在代理http请求会无脑加一个X-Forwarded-For(后文简称XFF),而不是将自身的IP地址加到已存在的XFF列表之后,WTF!还有这种神操作?确认无误之后,我到Haproxy的github开了一个issue反馈了这个BUG(issue地址),最终了解到了Haproxy就是这样设计的,并得到了解决方案,而且这个is...
5月10日 · 2015年

为WordPress开启Nginx缩略图功能,七牛从此陌路

8340 31
张戈博客曾分享过不少关于七牛云存储的一些经验技巧,对七牛感兴趣或者遇到相关问题的朋友可以看一看以前的相关文章: 七牛&又拍云CDN云存储节省GET次数的小技巧 WordPress简单代码开启七牛CDN及集成七牛缩略图的方法 浅谈网站使用七牛云存储之后的robots.txt该如何设置? Linux/vps本地七天循环备份和七牛远程备份脚本前段时间,百度云加...
6月17日 · 2022年

Flyer:基于FastAPI的轻量级API开发框架

4409 0
概述我们经常会听到“不会开发的运维不是个好运维”,确实在运维工作当中,娴熟的开发经验能让运维工作如鱼得水,事半功倍!高级的运维除了需要精通Shell脚本编程之外,最好还需要掌握一门高级语言,比如Python、Golang、PHP、Lua等。高级语言除了可以解决一些更复杂的运维场景,还可以帮助我们更好的理解业务,做好业务运维,毕竟知己知彼才能百战不殆。经常看到很多运维同学写接口通常...