东拉西扯

张戈博客正式启用全新个性域名: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运维优化之解决长尾请求(耗时抖动)问题

1月16日 · 2025年

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3656 0
自从APISIX网关推广使用以来,在我们部门已经有很多生产业务接入使用。有一天被拉进了一个问题群,被告知APISIX网关性能有问题,整体表现还不如之前的ZUUL网关。纳尼?APISIX性能再怎么不济也不至于比ZUUL差吧?废话少说,直接上手弄了个串行请求对比测试了一下生产环境的APISIX网关和ZUUL网关,结果大跌眼镜!正常情况下,APISIX的耗时都优于ZUUL网关,但是AP...
5月1日 · 2014年

解决WordPress多说评论无法同步(个例)

3470 0
这个问题其实已经解决很久了,但是一直忘了来记录下,前几天还帮MOREOPEN解决了相同的问题,感觉虽然是个案,但可能还是有朋友会遇到类似的问题。所以,就简单的记录下,给不知所措的朋友一些参考。一、多说不同步评论到本地的问题很大一部分博客采用了多说评论,而侧边栏的最近留言却用的本地的数据(比如张戈博客),突然有一天,你发现侧边栏的最近留言怎么都不更新了。。。。。。出现这个问题的原因,可能是你...
9月21日 · 2014年

清点下博客的插件以及我对WordPress插件的看法

660 12
最近,群里又讨论到了关于插件数量的问题,张戈博客的插件不多不少,正好9个。个人认为这些插件是目前博客所必需的,或者功能性价比很高的,下面就来晒一晒:一、SEO相关①、DX-SEO(已用代码替代)面向国内的博客,如果你要安装SEO相关的插件,个人强烈推荐大侠的这款,功能齐全,安装这一个就够了!功能就不多说了,自己看图:②、百度sitemap(已集成主动推送代码)百度官方出...
6月19日 · 2016年

分享一个网站防镜像以及解决七牛静态页面跳转的js方案

14118 112
导读:作为站长,基本都遇到过网站被人镜像的烦恼吧?最典型的代表就是谷歌搜索,大家都懂的。很多时候反代我们网站的人可能就是拿你的网站练下手,学习下反向代理。当遇到网站被反代,而且排名还比你好的时候,有没有要暴走的冲动...本文分享一种简单有效网站防镜像的方案,适合任何html页面。一、前人分享挺早之前,看到boke112转载过一篇网站防镜像教程,分享了从.htaccess、php以及js三个方...
脚本编程阅读更多
2月26日 · 2014年

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

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

[转]批处理For语句从入门到精通

1365 5
申明:本资料转自批处理之家,版权归作者:namejm 所有,如需转载请注明。原帖地址:http://bathome.net/thread-2189-1-1.html此文是俺学习批处理的启蒙教程,作者非常详细的分析了批处理最核心的for命令以及变量延迟,对于要学习批处理的童鞋非常值得仔细研读。一 前言二 for语句的基本用法三 for /f 含变量延迟四 fo...
5月3日 · 2015年

SEO技巧:Shell脚本自动提交网站404死链到搜索引擎

16376 74
最近在折腾博客主题,通常来说大多数人认为换主题会影响SEO,实际上只要你把工作都做到位了,是没有任何问题的。比如,换主题后你得仔细检查标题和描述等内容是否发生改变、换主题后是否带来了大量的404页面等。当然,更细微的可能是换主题之后,网站的内链网络也发生了微妙的改变,但是整体的影响较小。总之,张戈博客这次更换主题基本上没有看到明显的SEO影响,反而出现几个新的关键词。好了,题外话到...
7月21日 · 2014年

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

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

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

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

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

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

Ghost安装Win7/XP后自动恢复IP的批处理

4843 41
今天维护人员找的我说,最近要推Win7了,暂时桌面云没推广,还是使用手动安装Win7的方式。所以,需要我帮忙写一个脚本,大概功能就是在Ghost Win7之前先导出XP的IP信息,在Ghost完成之后,自动读取这个IP信息用于恢复IP设置。之前其实写过一个XP的,这次是Win7的,其实大同小异了,花了近半小时测试成功了,现在来记录一下。懒得去折腾兼容方法,就写了2个导出IP的脚本和...
1月2日 · 2017年

利用腾讯云COS云对象存储定时远程备份网站

9348 81
导读:2个月前,张戈博客分享了一篇Python+Shell定时备份网站到阿里云OSS的教程,已经有非常多的站长朋友用上了,反馈还不错,也有不少朋友提出了很多优化建议,比如上传完成后能否删除本地压缩包之类的,本文将继续分享另一种云端备份方案。一、优点分析内网传输:和阿里云OSS一样,腾讯云COS同样支持内网和外网文件传输,对于腾讯云服务器,使用内网传输绝对是最快、最稳定的备...
12月20日 · 2013年

批处理判断第一个硬盘的最后一个分区并进入

1196 0
参考批处理之家写给百度知友的。→百度问答原址@echo off echo 批处理初始工作目录为%cd%,开始切换... for /f "tokens=3 delims==" %%i in (\'Wmic Path Win32_LogicalDiskToPartition^|find /i "Disk #0"\') do call :check %%i echo. ...
1月16日 · 2025年

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

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

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

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

LVS+Keepalived负载均衡主备&双主架构全攻略

12255 2
LVS+Keepalived 介绍LVSLVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq...
3月18日 · 2015年

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

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

事实证明Linux永远是NO.1

3182 3
嗨,我正在写一个简单的程序,我要让这个程序打印出一个整数。 #include <stdio.h>    int main() {        int linux = 701;        printf("%d", linux);        return 0;    }  够简单吧。真的吗?我把它存成了code.c现在我...
5月4日 · 2014年

在Linux中发现IP地址冲突的方法

4998 8
Linux下出现IP冲突,是不会像Windows那样,在右下角弹出冲突提示的。博主就出过一次糗,记得当时是在VM虚拟机里面安装了4个redhat,测试LVS集群。结果发现其中一台RealServer老是掉线,重启network服务后能正常几分钟,然后又掉线了。。。4个Redhat都是VM克隆出来的、完全一致的系统,仅其中一台出问题,所以博主觉得匪夷所思!直到,后来我的办公电脑(宿主)网线直接没...
1月14日 · 2014年

Linux基础知识之文件隐藏属性

5757 0
这几天温习下Linux基础知识,基础里面较为薄弱的知识点我会在这里记录一下,以便回头查看Linux下的文件除了权限属性,还有一些隐藏属性,必须使用lsattr来显示,如下所示:[root@localhost ~]# lsattr test ------------- test结果中第一列是13个短横杆,其中每一个横杆都是一个属性,如果当前位置上设置了该属性就会显示相...
7月24日 · 2014年

Linux下用dd命令测试硬盘的读写速度

4611 17
这也是一个老方法了,只是今天用到了,就过来记录下。总觉得公司服务器磁盘不给力,有时候vim编辑的时候都会卡顿,IO经常90%+,很纳闷,就测试了一下磁盘的读写速度。一、测试写速度:time dd if=/dev/zero of=/tmp/test bs=8k count=1000000测试结果:565 MB/s二、测试读速度:time dd if=/tmp/te...
7月23日 · 2014年

Linux下巧用chattr、watch命令的实例

5077 7
一、起因前些日子,张戈在日志备份服务器加入了日志压缩的计划任务(详见服务器日志备份超节省空间的思路),结果发现监控总是发来tar的报警,提示存在tar进程。仔细检查history后发现是公司总部那边做的监控: 每20分钟执行一个监控脚本,然后删除。分析下这样做的好处:①、不留痕迹;②、把history塞满,让其他操作无迹可寻(感觉有点蛋疼)。二、擒...
1月23日 · 2014年

如何确保NFS服务安全

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

国内外流行的Linux发行版

727 12
近年来,Linux开始获得越来越多的关注,那你知道国内外流行的Linux版本都有哪些吗?本文中整理了五大Linux发行版,他们分别是RedHat、SUSE、Debian、ubuntu、Gentoo,一起来看看吧。Linux长时间以来都是极客圈子内的玩物,大众对其知之甚少,但谁都无法否认其重要性。近年来,Linux开始获得越来越多的关注,那你知道国内外流行的Linux版本都有哪些吗?一起来看看网...
WEB应用阅读更多
11月22日 · 2015年

php5编译安装常见错误和解决办法集锦

1540 10
最近在给开发同事折腾开发测试环境,其中就有php的编译安装。由于每个人的需求不一致,所以也接触到了各种模块编译和集成,中间不乏各种编译依赖报错。正好,搜了几次都是下面2篇文章内容,干脆就转到自己博客,以备后用,后续有相关内容再继续补充。 checking for BZip2 support… yes checking for BZip2 in default path...
2月27日 · 2014年

解决Tomcat数据连接池无法释放

9919 12
近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况。前些日子因为手头上有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Reload一下就好了,不过只是治标而已,因为大概几个小时之后又会再次出现无法登录的情况。今天上午,开发人员小毛又找到我,要我协助将这个问题根治一下,拖太久用户难保不投诉。简单分析了一...
2月28日 · 2015年

阿里云盾网站安全防御(WAF)的正确使用方法

4459 23
将2个网站搬到阿里云,一个是因为阿里云稳定,另一个就是牛逼轰轰的云盾了。之前在博客联盟群里模拟CC攻击过搭建在阿里云ECS上的博客,结果云盾毫无反应,而网站已经挂了。这次特意细看了一下云盾上的CC防护功能,发现有部分朋友估计并未正确使用WAF。所以,我在本文就简单的分享一下阿里云盾-WAF网站防御的正确使用方法。一、域名解析大部分朋友,只是开启了云盾就不管了,这也就是很多朋友受到C...
9月25日 · 2014年

服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站

4645 67
我们都知道网络上的爬虫非常多,有对网站收录有益的,比如百度蜘蛛(Baiduspider),也有不但不遵守robots规则对服务器造成压力,还不能为网站带来流量的无用爬虫,比如宜搜蜘蛛(YisouSpider)(最新补充:宜搜蜘蛛已被UC神马搜索收购!所以本文已去掉宜搜蜘蛛的禁封!==>相关文章)。最近张戈发现nginx日志中出现了好多宜搜等垃圾的抓取记录,于是整理收集了网络上各种禁止垃圾蜘蛛...
12月27日 · 2014年

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

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

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

7769 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版...
11月3日 · 2021年

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

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

LVS中采用Jboss作为RealServer的配置要点

1131 6
 博客建站已过2个月了,大部分文章总是在记录博客的折腾史,估计大部分喜欢折腾的博主都有这样的时期吧!现在博客基本算是定型稳定,是时候写点与主题相关的博文了,否则,不知道的还以为我这是WP折腾博客呢!这几天,老大发新年任务了,把新技术的研究就交给了我,其中又一项就是Jboss的集群。说实话,对于Jboss,我真的谈不上熟练,因为长期都在管理Tomcat平台。揽到这个任务,我倒也非常高兴,终于可以...
9月22日 · 2014年

http加速器Varnish的vcl配置小记(lnmp环境)

1187 2
在以前的公司曾安装过Varnish,可惜还没摸热就离职了,这次接着倒腾了下Varnish,并搭建成功,特来记录下,以备后用。一、测试环境系统版本:CentOS 6.4 x64WEB环境:Nginx+PHP+MySQLVarnish:3.0工作原理:简单的说,在本次测试中,Varnish将来自80的请求转发到后端的nginx8080端口,当匹配到请求是jpg、css、...
5月30日 · 2015年

Nginx开启fastcgi_cache缓存加速,支持html伪静态页面

10347 117
张戈博客不久前分享过Nginx开启缓存为WordPress加速的教程,其中分享了2种缓存模式:代理模式和本地模式。我一直以为单个 ngx_cache_purge 缓存模块只支持proxy代理模式,结果热心的网友回复,其实这个模块也是支持本地缓存的,而且WordPress还有配套的插件!看来还是我孤陋寡闻了!我像发现了新大陆一般,立马进入折腾状态,幸不辱命,已经成功部署!最爽...
12月18日 · 2016年

Nginx内容替换模块http_substitutions_filter_module及实用案例分享

2838 28
说到Nginx的内容替换功能,大部分人应该都听说过Nginx内置的的subs_filter替换模块,但是这个模块有个缺憾,就是只能替换一次,而且还不支持正则表达式,这就有些鸡肋了。不过,我们可以集成一个第三方的替换模块:ngx_http_substitutions_filter_module,来实现我们的各种需求。经过测试,这个模块至少有如下实用功能:①、支持多次替换②...
5月20日 · 2015年

为网站开启Nginx缓存加速,支持html伪静态页面

20351 53
上一篇文章分享了如何开启 Nginx 的缩略图功能,也提到了 Nginx 缩略图在完美替代七牛缩略图或PHP缩略图的同时,还会带来一定的CPU负载消耗。因此,本文就来分享一下如何解决这个实时生成缩略图带来的CPU开销问题。思路很简单,既然你要实时生成,那我就将你生成的缩略图缓存一份好了!在我测试期间发现,Nginx 的缓存也同样可以缓存伪静态的 html 页面,完全可以替代WP-S...