东拉西扯

张戈博客正式启用全新个性域名: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% 的开源套件

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

linux/scp命令报“bash: scp: command not found lost connection”错误的解决办法

2285 3
这两天接到的任务是给JAVA开发项目组部署【JAVA+MySQL主从+Redis主从】运行环境。部署过程中大问题倒没有,小问题却不少,因此也涨了不少经验值。后续有时间我会一一整理记录下来,沉淀而不忘分享。今天,装完一台redis,并配置好redis.conf后,想偷懒直接用scp传到另一台redis,省去全部重新编辑的麻烦。结果一执行就出现下面这个错误:bash: scp: c...
11月1日 · 2015年

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

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

利用HSTS安全协议柔性解决全站HTTPS的兼容性问题

16484 82
导读:目前,很多站都开始实现HTTPS了,而且其中的大部分强迫症站长还会开启强制HTTPS机制,对于网站的HTTP请求全部301跳转到HTTPS,从而实现全站HTTPS。这明显是一个粗暴的做法,下面张戈博客就分享一下目前正在使用的柔性做法,告别粗暴。一、HSTS协议这里我们要借助一个新的安全协议:HSTSHSTS(HTTP Strict Transport Security)国...
脚本编程阅读更多
6月19日 · 2014年

[不定期更新]简单的shell脚本练习实例

2119 24
此文将整理一些简单实用、有趣易学的shell练习脚本,希望可以帮到一些想学习shell的初学者。张戈也会在闲暇时间不定期更新此文,对已有实例进行改进和注释,增强可读性和易懂性。当然我也会不定期的添加更多简单、有趣且实用的shell练习脚本,帮助一些有需要的入门学习者。一、编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息。原文代码为:#!/bin/bas...
8月3日 · 2022年

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

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

[持续更新]批处理重命名系列案例

1432 1
批处理用于文本/文件的操作确实非常简单有力!不用多么复杂的代码,仅一个记事本加上简洁的代码即可搞定大部分文本/文件的操作,下面记录下我用过的一些代码,基本都是我在百度回答知友的一些代码,既给涧客们参考,也让起到备忘的作用。。。。(本文是系列博文,将持续更新,敬请关注!)案例一、百度原址 知友问:想把一个文件夹里的全部文件都命名成001,002……这样按顺序,什么顺序无所...
6月26日 · 2014年

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

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

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

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

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

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

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

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

菜单式Shell运维脚本调试小记

4011 7
今天上午,同事叫我帮他看下他正在写的脚本到底哪里出了问题,执行总是达不到预期功能。于是ssh连过去看能否发现问题,经过多次Debug定位与排除,问题终于得到解决。 同事在网上down了一个脚本菜单模板,想把我们已经存在的功能脚本整合到一起,做成多功能的Linux运维工具。目前已经添加了挺多功能,而早上才添加的一个抓取高占用CPU的Java线程功能时出现了无法出现交互界面的问题...
12月27日 · 2013年

Tomcat重启脚本For Windows

7552 4
Tomcat重启脚本,送给有需要的JSP环境运维同行们~运行环境:XP/windows 2003测试通过,其他环境由于手头上条件限制未测试;脚本功能:在常规调用tomcat自带的关闭/重启脚本中加入假死判断,若出现假死则予以强行Kill掉相关JAVA进程;脚本特点:可在tomcat/Jboss/apache混合平台使用,针对性的只重启tomcat相关进程;注意事项:...
7月21日 · 2014年

nginx日志切割及7天前的历史日志删除脚本

8741 16
上次写到《服务器日志备份超节省空间的思路》,压缩后磁盘占用由93%降到了62%,效果还是不错的!为什么不直接删除呢?其实是因为这些日志涉及到支付等重要业务,保存半年以上也算是保守的做法。今早,又发现几例磁盘空间报警,占用率都在90%+,关键居然是根分区!这要是日志突然暴涨,把根分区撑爆了,那就可以体验到“菊花一紧”的快感了吧?索性利用CRT的全局命令把磁盘空间占用率超过75%的服务...
操作系统阅读更多
4月6日 · 2017年

远程桌面报错解决:No Remote Desktop License Servers Available

10095 26
用户发来反馈,使用部门Windows跳板机报错:The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license.Please contact the server administrator,最后发现是微软RDP远程桌面套件的一个BUG,可通过安装微软补丁或修改注册表来解决,本文简单记录分享下解决过程......
8月13日 · 2015年

Linux在批量服务器管理中实用的PS1命令提示符格式

4735 5
作为一个大公司的运维,手头管理了成百上千的服务器是家常便饭,甚至更多。而我们一般都是用跳板机登陆,由于这些机器一般都是克隆或者虚拟化出来的,所以登陆后的命令行提示符几乎是一个模子刻出来的,比如都是:[root@localhost ~]#这时,我们肯定会经常遇到这样一个困扰:操作服务器时因某事中断,回头继续操作的时候肯定会ifconfg确认下是否是我要操作的服务器,因为无法从表象识别...
3月24日 · 2014年

Linux:10个实用的网络和监控命令

5058 13
本文列出了10个基础的每个Linux用户都应该知道的网络和监控命令。网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看linux服务器ip地址,管理服务器网络配置,通过 telnet 和ethernet建立与linux之间的网络链接...
3月22日 · 2014年

Linux:mv 命令的10个实用例子

7091 18
当你想要将文件从一个位置移动到另一个地方并且不想复制它,那么mv 命令是完成这个任务的首选。本文中总结了十个Linux mv 命令的实例,希望能给大家带来一些帮助。熟悉了复制命令,下一个相关的命令就是 mv 命令。当你想要将文件从一个位置移动到另一个地方并且不想复制它,那么mv 命令是完成这个任务的首选。初识 mv 命令mv 命令是一个与cp类似的命令,但是它并非创建文件或目录...
1月5日 · 2015年

Linux系统内存监控、性能诊断工具vmstat命令详解

5194 4
最近,烦心事有点多,博客也像是进入了便秘期。虽然还远远不到说放弃的地步,但总有一种挤不出牙膏的郁闷感。很怀念前几个月的冲劲和激情,一天都能存好几篇优质草稿。看来,张戈博客是首次进入瓶颈阶段了!没办法了,先转点基础教程充门面,当然也是为了温故而知新。vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用...
3月3日 · 2014年

Linux中的完美截图工具:Deepin-ScreenShot

12034 48
 跟了我5年多的本本已步入花甲,CPU严重老化,运行Windows异常吃力,于是考虑换成Linux试试。忙活了一天,测试了2个“家用”Linux发行版,一个是深度的Linux Deepin 2013,另一个是雨林木风的StartOS 5.1。在测试过程中也遇到一些有用的经验,现在就一一记录一下。这个是在安装完StartOS发现的问题,我第一个安装的是Linux Deepin 2013,发现自带...
11月19日 · 2017年

替代crontab,统一定时任务管理系统cronsun简介

6292 37
cronsun 是一个分布式任务系统,单个节点和 Linux 机器上的 crontab 近似。是为了解决多台 Linux  机器上 crontab 任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死机的时候可以自动调度到正常的节点执行)。支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 crontab 一个不错的选择。...
6月23日 · 2014年

SecureCRT全局发送相同命令,快速抓取服务器信息的方法

11211 11
昨天,在新公司接到了第一个任务:统计所有服务器的几个信息。200多台呢!一个台一台的去执行命令也太苦逼了吧?于是度了下,找到了这个方法,感觉很不错!现在来分享下,希望对像我这样苦逼的人有所帮助!一、SecureCRT同时向多个session发送相同命令的方法对于要管理多台服务器的SA或DBA来说, 如果要在所有服务器上操作同样的命令, 一台台登陆操作是个很笨的方法. 一直以为SecureC...
4月4日 · 2014年

Linux优化方法收集与整理

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

解决mstsc无法连接问题:由于没有远程桌面授权服务器可以提供许可证…

5494 3
最近一直很忙很忙,完全没时间打理博客,回家后基本上就是洗洗睡的节奏,我之前真的从未想过,我会有回到家不想碰电脑的情况。。。不但不想碰电脑,而且失眠症也消失无遗,因为实在是太疲劳了,总算是有了些好处。这几天实际上也有一些可以记录的工作经验,无奈一直没有头绪也没时间,刚好趁着今天午休间隔,先整理出一小部分好了,不然博客就真废了。。。一、故障案例①今天上午在给测试组的IIS新增https...
WEB应用阅读更多
12月2日 · 2015年

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

9991 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...
10月6日 · 2015年

Nginx配置多站点下的Proxy_cache或Fastcgi_cache缓存加速

8284 19
张戈博客分享过很多关于缓存加速的教程,自己也是不断的在摸索,追求最佳的网站静态缓存加速方案。在这里简单的总结一下:1、使用虚拟主机的朋友推荐使用缓存插件或php 代码版缓存方案=>点此直达2、使用独立主机的朋友推荐使用Nginx的Fastcgi纯静态缓存方案=>点此直达在我分享了Nginx的Fastcgi缓存之后,有不少朋友已折腾成功。不过有朋友反馈,不知道在多...
3月17日 · 2018年

网站集成打字震动特效JS代码改进版

3474 37
这又是一个拖欠了很久的分享,很早就有朋友留言问评论打字炫彩、震动特效怎么实现的。这功能其实网上早就有人分享N遍了,有点搜索技巧和DIY能力的站长同学也早就实现了。这里还是继续分享一下我这边的一些改进,也许有朋友可以用得到。简单的改进:1、移动端关闭震动,移动端震动会显得很卡;2、添加震动开关,方便不喜欢的朋友进行关闭,采用Cookie记忆同一个浏览器点击关闭一次即可。P...
11月14日 · 2021年

APISIX运维优化之配置文件自动化生成方案

4388 1
Configmap的方式来配置APISIX。最开始我们就采用 Configmap的方式在腾讯云TKE上部署APISIX,当网络区域越开越多时,每个TKE集群都需要去定义一套config.yaml对应的Configmap,管理非常繁琐。因此,这里我们利用Python的Jinja2插件来自动化渲染APISIX的配置文件,整体非常方便!...
3月5日 · 2017年

libmemcached编译安装报错解决记录

4833 27
我负责的几个公司内部网站,仅集成了php原生memcache组件,不支持memcached分片存储的自动容灾方案,近期出现过几例因memcache服务器故障引起WEB爆卡的尴尬事,所以接到了一个给现网php集成memcached模块的需求。内部的个别系统有多老、多难用我就不吐槽了,slackware、suse用过的人都知道。。。不说了,总之老老实实的编译安装吧。memcached这...
2月24日 · 2018年

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

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

Apache/Nginx伪静态规则匹配http://出现的问题与解决

1702 8
这个问题不知道有没有人遇到过,反正度娘和谷姐都没能帮到我!困扰了我挺长时间了,今天偶尔将代码放到Apache服务器下测试时,意外解决了!问题是这样的,我搭建了一个网站icon图标抓取的API接口,正常情况下对象的传参是通过$_GET[\'url\']获取的,因此常规获取图标的地址应该是:http://domain.com/?url=zhang.ge或http://domai...
2月27日 · 2016年

分享一下php7和其他php多版本共存的配置教程

9452 15
年前,终于迎来了期待已久的php7正式版,我也在第一时间就给博客用上了。性能确实有了质的飞跃,问题还是有不少的。比如鱼叔的微信插件在php7下面自动回复异常等。为了继续使用微信插件,我只好将php5.6又开了起来,下面简单分享一下多个版本php共存的方法。一、编译路径多个版本php要共存,必须使用不同的安装路径。比如,之前php5.6安装在/usr/local/php,那么我们安装...
8月13日 · 2016年

修改Apache的超时设置,解决长连接请求超时问题

8929 47
某日,组内后台开发找到我,问我们的WEB服务器超时设置是多少。他反馈的问题是,有一个VLAN切换任务cgi接口经常返回504网关超时错误,要我分析解决下。我问了一下,得知这个请求遇到网络设备对象较多的时候,需要小半个小时才能完成,也就是要用到长连接才行。老规矩,从开发那拿到接口地址,得到接入层服务器IP,是一台Haproxy代理,看了一下Haproxy的超时设置:# 设置成功连...
12月27日 · 2014年

Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程

26184 24
上上篇文章《nginx平滑升级&新增模块》提到了公司的https访问需求。当我新增了SSL模块之后,却发现以前还真没部署过https访问。下面整理我的部署过程,并收集了一下Apache和Tomcat这2种Linux下常用的WEB软件配置SSL的简单简单步骤,以便回头翻阅。一、下载证书成功申请SSL证书之后,就可以下载到配置SSL的证书了!一般情况下,都可以选择下载相应WEB...
12月8日 · 2015年

升级Nginx1.9.5以上版本,开启博客网站http2.0时代

8163 18
最近给张戈博客全站开启了https,所以对这块关注比较多。昨天脑补的时候发现http2.0只支持SSL加密的网站,即https。于是心血来潮,给张戈博客开启了http 2.0,尝尝鲜。查了下资料,发现Nginx不久前发布的 1.9.5版本支持http2.0,而1.8.x时代只是对SPDY进行了支持。一直用的1.62稳定版,此次为了测试http2.0,直接进行了版本跳跃,升级到了1.9.5版...
4月2日 · 2014年

ipvsadm启动报错解决办法,另附ipvsadm详细参数

6495 10
记录ipvsadm 启动报错的解决办法,并附上详细的ipvsadm参数说明报错信息:[root@localhost ~]# service ipvsadm start Clearing the current IPVS table: [确定] Applying IPVS configuration: /etc/init.d/ipvsadm: line 62: /etc/sysconfig/ipvsadm: 没有那个文件或目录...