东拉西扯

张戈博客正式启用全新个性域名: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:支持私有化部署和源阅读无缝对接的语音合成服务

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

360站长平台移动适配文件制作说明

1968 24
最新消息:张戈博客已推出全自动生成移动式配专用sitemap的PHP版本,请移步查看=>前些日子,玛思阁写过一篇《百度开放适配专用sitemap制作说明》的教程,讲解了如何制作百度开放适配专用的sitemap文件。前两天,发现360站长平台也推出了一个相同功能,叫做移动适配。于是将之前我写的百度开放适配制作脚本修改了下,生成了适合360移动适配的文件并提交了,今天看了下效果,发现在3...
5月7日 · 2014年

最新发现:百度口碑是升级百度site命令的原因之一

1062 44
之前有看到《百度site命令更新:调用大量站长平台数据-卢松松博客》一文,得知百度的site命令升级了:于是立即试了下,发现已经没有了。试了几次后发现有的站点会出现,有的则没有,当时并未深入研究。近日,我将博客更名为张戈博客,并启用全新域名,于是又开始混迹在各大搜索引擎的站长平台,想尽力减小博客改版带来的损失。一次偶然的尝试,让我惊喜的发现了百度口碑和百度site命令的关系...
4月3日 · 2014年

Linux :MAC 地址克隆方法

2187 25
虽然 MAC 地址由厂商指定,但用户可以改变它,这就是传说中的“MAC 地址欺骗”。你可能会疑惑,弄这个有什么用?好吧,玛思阁举个例子,比如,电信宽带的PP拨号很多时候就是绑定MAC地址的,换一台电脑可能就会拨号失败,这时候的解决办法就是在新机器上克隆已绑定的那个MAC地址即可!一般大部分人仅知道如何对Windows系统的网卡进行克隆,而本文将向大家展示在 Linux 上进行 MAC 地址克隆的方法。...
脚本编程阅读更多
3月4日 · 2014年

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

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

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

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

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

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

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

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

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

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

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

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

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

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

网站预缓存工具,提升网站整体加载速度

6697 0
由于电信宽带和谐了443端口,近期我花了不少时间折腾了下近半年都没瞅一眼的博客。经过一番折腾(详见前文),博客总算可以运行在家里的NAS上,整体部署方案如下:图1. 张戈博客部署架构图一、预缓存从上图可以看到,由于中间用于代理转发的腾讯云CDN和阿里云CDN都是没有缓存的,如果CloudFlare的缓存过期,将需要绕过多层链路回源获取网页内容,相比速度就会慢很多。所以,需...
7月21日 · 2014年

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

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

身份切换脚本,免登入切换权限的利器

1415 1
分享一个我曾经写过的功能代码:工具身份切换脚本,主要用于脚本执行期间其他身份(如administrator等)的切换,从而获取到所需权限。使用说明:1.将下面的代码保存为bat脚本,如switch.bat,其中的【你要加权执行的外部程序或脚本】需要根据实际情况修改成你将要执行的文件路径2.在你切换前启动的脚本中加入 call "%~dp0switch.bat" (%~dp0表示...
操作系统阅读更多
11月29日 · 2018年

Linux运维基础技能: 接入层与网络基础

1971 18
本系列文章一共三篇,分别为《脚本编程与 Linux 命令》、《接入层与网络基础》和《 MySQL 与 SQL 优化》,由腾讯高级工程师 luaruan(阮永顺) 原创、张戈博客整理分享,如有勘误请在博客留言。希望对需要学习、面试 Linux 运维的同学有所帮助。MSS与MTU的区别,默认大小各是多少? 标准以太网接口缺省的MTU(最大传输单元)为1500 字节,是最大帧151...
4月4日 · 2014年

Linux优化方法收集与整理

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

CentOS 7.0.1406正式版发布,附更新记录及CentOS7 iso镜像文件下载地址

18845 12
上次张戈博客刚公布了RHEL7的最新资讯及下载地址,并且在文章结尾也猜测centos7也会即将发布,于是一直持续关注着Centos 7的最新动态,前些天centos发布了一个预览版,而非正式版,张戈也就没分享出来。今天,刚从厦门旅游回来,突然发现Centos在7/8号就已经发布了!好吧,我也奥特曼了。下面转载一段来自【太平洋电脑网】的相关介绍,就懒得另行码字了。7月8日,Cen...
1月29日 · 2015年

CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法

1647 13
这几天复习运维知识,也没怎么关注业界新闻,可等我一关注,又“捅娄子”了,Linux继上次CVE-2014-6271漏洞爆发以来,再次爆发一个严重漏洞:CVE-2015-0235-Linux glibc高危漏洞,正在使用Linux系统的个人或企业,看到消息请立即修复!下面是我转载的检测和修复方法,我个人服务器Centos 6.5已成功修复:一、漏洞概述2015/01/28...
3月27日 · 2015年

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

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

事实证明Linux永远是NO.1

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

Linux/VPS系统安全设置整理

1380 12
最近入手了一台创宇云的VPS,然后将2个网站都给搬家了。作为一个运维工程师,终于不用再处处受制于人了,虚拟主机真的只能玩个球!拿到VPS并快速部署好环境后,开始着手完善一下安全设置,以下过程记录,供大家参考:一、用户权限安全设置root权限太高,误操作就相当危险,所以日常操作使用普通账号,只有特定时候才使用su切换到root身份。①、新建普通用户,比如zhangge...
8月13日 · 2015年

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

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

Linux系统crontab备份数据库执行不成功?可能是百分号%在作怪!

4280 4
之前博客分享过一篇《Linux/vps本地七天循环备份和七牛远程备份脚本》,我自己也一直在用。某天检查备份的时候,突然发现数据库的备份的压缩包是空的!看了下crontab的日志,发现有如下错误:Access denied for user \'dbuser\'@\'localhost\' to database \'db\' when using LOCK TABLES原来,我在计划任务中备份...
7月25日 · 2014年

解决ping域名时出现“TTL传输中过期”的问题

11290 14
昨天下午,RTX群里面公司负责游戏运营的MM发来求助:我还真是孤陋寡闻,以前还真没见过这个问题,赶紧度了度,很快就帮MM解决了问题。 解决办法也很简单:方法①、 关闭所有浏览器,右键点击“网络邻居”,选择“属性”,在“本地连接”上点击右键,选择“修复”即可。方法②、在DOS窗口下(如果是XP,点击屏幕左下角的“开始”,“运行”,输入“cmd”回车)输入:ip...
WEB应用阅读更多
11月3日 · 2021年

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

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

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

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

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

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

实测Nginx服务器开启pagespeed加速效果

11714 21
上周有一个站长问到我一个问题,问fastcgi_cache和pagespeed加速有没有冲突。略微想了下,2个都是比较原生的主,应该不存在兼容问题。至于这个朋友问到这2个机制处理的先后问题,我思考了下。既然fastcgi_cache已经是缓存到本地的文件,那么pagespeed肯定是后处理的。通俗来说,就是当用户访问WEB时,Nginx 应该是先调用 fastcgi缓存,然后再进行page...
12月27日 · 2014年

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

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

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

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

解决网站404页面返回200状态码问题

7037 14
好久没打理博客,突然收到CDN流量预警,发现平均每天40G流量消耗!what?就现在这个访问量,不存在的。看了下CDN日志发现有小人一直在请求博客页面,其中被请求最多的就是CCkiller防御工具那个文章地址。呵呵,我就写一个简单的防御小工具,惹着你啦?实际上我用了CDN,也并没有安装这个工具,所以想试探、想测试效果的麻烦自己去安装使用,攻击我博客毫无意义,挂了又能怎么样?废话就扯...
12月12日 · 2021年

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

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

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

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

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

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

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

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

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

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