东拉西扯

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

Docker

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

Docker

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

网站建设

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

Docker

Docker新手入门实战教程

Docker

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

东拉西扯

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

脚本编程

CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放

网站建设

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

3月30日 · 2020年

基于Bitwarden打造个人专属密码管理服务

6323 39
概述在我们的生活和工作当中,会接触到N多的APP或网页,因为并不是每个服务都能用类似QQ一键登录的方式来绑定账号,所以也就有了N多的账号密码,记密码成为了让我们非常头疼的事情。太简单或者过于单一的密码容易被撞库或“脱裤”,而太复杂的密码又难以记忆。因此,市面上就有了多款帮助我们记录密码的软件服务,比如1password、Lastpass等。这些软件能够自动抓取我们提交的账号密码保...
2月8日 · 2020年

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

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

由电信宽带封堵443端口引发的一系列折腾

5935 41
很久木有搭理博客了,最近冠状病毒肆虐也只能窝在家里,要么带娃要么刷新闻。最近折腾KONG网关正好有一些心得,就想到博客整理下,结果发现后台打不开。检查一看,原来我部署在群晖上的源站早就挂B了,只剩CloudFlare的CDN缓存在勉强支撑。进一步诊断了下,根因就是电信宽带443端口被封了,因此CloudFlare回源吃了个闭门羹。心里默默的问候了一下(河蟹),然后快速想了多个方案:...
10月4日 · 2019年

Docker Remote API简介及实战分享:Haproxy远程管理

3035 13
熟悉Docker的朋友都知道,Docker是可以开启远程控制API的,默认监听TCP 2375端口,它有非常丰富的接口方法,可以用来远程控制Docker Daemon来做很多操作。Docker版本迭代很快,因此不同的版本官方也提供了不同版本的API文档,本文主要基于当前最新的v1.40简单介绍下一些常用操作及最佳实践。一、安装DockerCentos 系统可以直接使用yu...
7月7日 · 2019年

CloudFlare边缘计算Workers尝鲜初探:博客跳转中间页

1556 42
4月27日,有幸参加了由Aftership组织、CloudFlare的大牛孟鑫主讲的《CloudFlare 最新边缘API,打造无服务器(Serverless)架构》课程,感觉收获颇丰。因为这个课程非常接地气,大部分内容都在实战,而不像有些分享一味的讲理论、拼PPT,听得云里雾里,分享的时候是一个样子,真正你去尝试的时候却是另外的样子,duang~,当然,还有一个原因就是张戈博客目前也在用Clo...
6月23日 · 2019年

Docker镜像分享:一键部署MariaDB Galera Cluster集群

4390 34
MariaDB Galera Cluster(下文简称MGC集群),是一套在MySQL innodb存储引擎上面实现多主、数据实时同步以及强一致性的关系存储架构,业务层面无需做读写分离工作,数据库读写压力都能按照既定的规则分发到 各个节点上去,在数据方面完全兼容 MariaDB 和 MySQL。...
6月2日 · 2019年

张戈博客使用CloudFlare CDN加速的经验技巧分享

6580 76
我博客之前的文章提到了因更换了个性域名 zhang.ge 导致无法备案,因此服务器也不得不迁移到国外,这里也顺便分享一下,目前博客使用AWS的lightsail,坐标东京,配置如图:图1:我选择的是套餐三,另外挂了一个20GB云数据盘大概10刀多一点每月,换算软妹币80左右,比国内的绝大部分香港或境外同等配置云服务器划算。如果选择前2个套餐会更便宜。图2:近几个月的费用报...
5月2日 · 2019年

分享一个Nginx反向代理的另类应用案例

4436 37
博客前面分享了一篇《分享一个Nginx正向代理的另类应用案例》,时隔不久,身为救火队员、万金油的博主又再一次接到了一个另「W」类「T」需「F」求:场景和上次有些类似,也是部门引进的第三方应用,部署在各个网络区域,从OA办公区域无法直接访问。目前,运营人员都需要登陆Windows跳板机,才能打开这些应用的WEB控制台。既不方便,而且还有一定Windows服务器的维护工作量,于是找到我们团队...
4月12日 · 2019年

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

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

Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点

5896 12
一开始搭建中国博客联盟,既有博友提醒我,做网址大全这类网站维护很麻烦,需要大量的精力去Debug一些已夭折的网站,更是拿松哥的博客大全举例。当然,我也是深以为然。前些时间,看到梦轩丽人的boke123网址大全的维护记录,好像是纯手工检查,张戈实在是佩服的五体投地,太有毅力了。现在博客联盟也收录的博客也已破200了,全部来自自主提交,不管你是草博还是名博,张戈不会强买强卖。由于大部分都是建站...
4月17日 · 2014年

超強统计插件:My Visitors在知更鸟主题下的修改教程

3286 24
这款插件是今天在研究互推联盟页面在荣誉站点的点击率统计时发现的,感觉非常给力,一个顶四!先来几张截图: 全部功能菜单: 非常详细的访客清单,还可以看到蜘蛛爬行痕迹:访客总览图:  Get it!Download × 版权说明 ...
10月14日 · 2014年

单机MySQL数据库优化推荐的编译安装参数

2602 9
MySQL编译参数多而复杂,让新手感到很头大,如果是正式生成环境安装MySQL,没有充足的时间去研究每一个参数代表的意义,个人建议使用余洪春前辈整理的编译参数,便捷高效!MySQL的线上安装建议采取编译安装的方法,这样性能上有较大提升,,源码包的编译参数会默认以Debgu模式生成二进制代码,而Debug模式给MySQL带来的性能损失是比较大的,所以当我们编译准备安装的产品代码时,一定不要忘...
脚本编程阅读更多
5月3日 · 2015年

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

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

grep无法查找shell传过来的变量?先注意一下文本格式吧!

11777 6
昨天,同事告诉我发现一个诡异的问题,grep无法搜索shell中的变量,着实很惊讶。到他所说的服务器上试了下,还真是不行!大概就是这样一个要求:①、有个文本为userid.txt,里面每一行一个用户id,类似如下:00010003000500070009②、另外还有一个文本为record.txt,里面是所有用户的操作记录,一行一条,并且包含有id,类似如下:...
11月3日 · 2014年

VPS/Linux系统防CC攻击带白名单过滤功能的Shell脚本

375 4
最新更新:张戈博客已推出功能更强大的轻量级CC攻击防御脚本工具CCKiller==>传送门根据我个人VPS需求,并参考了余洪春前辈的《自动甄别黑白名单的iptables安全脚本》,编写如下Shell代码。脚本名称:自动拉黑CC攻击者IP的Shell脚本功能说明:通过netstat -an命令统计出当前请求并发大于100的IP,然后将不在白名单的IP自动加入DROP规则...
12月26日 · 2013年

Symantec更新包[XP-i32]在线下载脚本

2333 0
编写初衷:公司用的是Symantec杀毒软件,在客户端更新失败的时候,维护人员总是需要手动去下载离线更新包然后到客户端执行,非常麻烦!于是写了这个脚本丢到服务器上建立任务计划,客户端要更新的时候直接脚本调用\\server\symantec\update\20131225-002-i32.exe即可。脚本名称:Symantec更新包[XP-i32]在线下载工具脚本功能:主要用于Syma...
3月29日 · 2015年

SendCloud邮件队列状态和已使用额度的Python监控脚本

3349 2
公司最近用上了 SendCloud 的邮件代发服务,于是就有了各种监控需求。比如每天发信额度是不是要超标了或是邮件是否堵塞了等等。最近经常接触 python,所以这次也一样,继续学习使用 python 来完成各种脚本需求。SendCloud 提供了很多对外查询的 API,只要 Get 或 Post 传递用户名和 KEY 即可获得想要的各种数据,比如最简单的【已使用额度】就可以在用户...
6月19日 · 2014年

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

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

js获取url中?后的参数,修复移动版无法切换到电脑版的BUG

3428 18
昨天,发布了《完美实现移动主题在360网站卫士缓存全开情况下的切换》一文,通过JS实现了主题在移动端访问时的自动切换,最后提到了可以在电脑版和移动版的footer里面加上手动切换链接,实现手动版本切换功能。今早发现,电脑版切换到移动版是没问题了,但是移动版切换到电脑版,JS将会再次工作uaredirect.js会再次做UA判断,然后由又跳回了电脑版! 也就是说,手机上浏览无法手动切换到电脑...
7月1日 · 2015年

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

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

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

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

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

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

Linux运维基础技能: 脚本编程与Linux命令

3266 16
本系列文章一共三篇,分别为《脚本编程与Linux命令》、《接入层与网络基础》和《 MySQL 与 SQL 优化》,由腾讯高级工程师 luaruan(阮永顺) 原创、张戈博客整理分享,如有勘误请在博客留言。希望对需要学习、面试Linux运维的同学有所帮助。$1 入参,空值时默认赋值技巧variable=${1:-"default value"} # 当未传参时,赋默认值。echo...
5月19日 · 2014年

LVS中Windows作为真实主机(RealServer)时的设置方法

910 22
最近,公司新推了一个电商项目,IIS+ASP。而上面大大规划了要用LVS负载均衡集群,在这个技术陈旧的企业,LVS项目还是去年才真正推行。由于最开始是由我测试的,所以这次的部署又落到了我头上了。 之前一直是在RHEL上做的LVS+Keepalived,现在换成Windows主机,虽然在集群架构上的理解没啥问题,但是这Win主机做RealServer具体该如何设置还真没弄过。不过,万能的搜索引擎很快...
3月18日 · 2015年

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

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

Linux基础知识之xargs命令

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

Linux系统chmod误操作目录权限恢复方法

203 8
部门刚上线了一个新系统,发现一个BUG,于是开发直接上机器调试,他认为是文件目录权限不够的问题,于是想用chmod -R 777 先给这个程序目录全部权限试试。结果,那家伙手一抖命令敲成了:chmod 777 -R /*而且想都不想就回车了,然后弹出一堆 /proc/*** 没权限更改目录权限的错误提示,我一看就冷了一大截。。。里面让他ctrl +C 终止命令。不出所想,系...
6月23日 · 2014年

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

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

Linux系统zip压缩命令详细参数,附文件排除选项的正确用法

568 8
这次给博客添加了纯代码缓存之后,发现缓存文件竟然达到了50多MB!而我的服务器每次还需要同步至七牛,文件体积的增加都会增加文件远程同步备份的时间。因此,我第一想到的办法就是在网站ZIP压缩打包的时候排除缓存文件夹。下面是从网上找来的ZIP命令参数:zip Linux上适用的参数:-1 : 最快压缩,压缩率最差。-9 : 最大压缩,压缩率最佳。-b : 暂存文件的路径。这个参...
11月19日 · 2017年

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

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

详解Linux运维工程师必备技能

2725 1
本人是Linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧。说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具。我就大概列出这几方面,这样入门就基本没问题了。Linux系统如果是学习可以选用Redhat或CentOS,特别是CentOS在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄...
1月23日 · 2014年

Redhat设置NFS挂载的简单步骤

6709 0
初识nfs还是在测试lvs负载均衡的时候,为了保证代码的一致性,将一台Realserver作为nfs服务器,而其他Realserver均以nfs将代码挂载过来。这样就保证了代码的一致性,但也是由很大隐患的,一旦那台Realserver宕机,那就全军覆没了...好了,废话不多说,进入nfs挂载简单步骤。一、安装nfs一般redhat是默认安装了nfs服务的,如果非默认安装且取消勾选nfs的话...
WEB应用阅读更多
1月20日 · 2019年

分享一个Nginx正向代理的另类应用案例

1677 13
最近接到了一个需求:通过Nginx代理把现网一个自研代理程序给替换掉,感觉有点意思,也有所收益,简单分享下。需求背景部门的生产环境异常复杂,有部分第三方引入的系统位于特殊网络隔离区域,请求这些系统需要通过2层网络代理,如图所示:中心源系统请求目标系统API的形式各异,我简单收集了下,至少有如下3种:curl --digest -u admin:xxxxxx...
2月27日 · 2016年

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

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

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

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

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

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

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

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

解决Nginx配置http2不生效,谷歌浏览器仍然采用http1.1协议问题

878 30
昨天一个网友通过QQ联系我,说按照我博客之前分享的http2配置教程不能生效,想请我帮忙看看。经过测试,使用谷歌浏览器访问他的测试站点,确实没有开启http2,但他的配置和编译参数都正确的,这有点奇怪了。不过昨天太忙就没有继续帮他分析,他只好将服务器账号和密码都留言给了我。今天中午我抽空在他服务器重新编译测试了一把,才发现原来是这么一个梗!他在编译Nginx之前,使用的是yum...
4月12日 · 2019年

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

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

HTTP加速器varnish安装小记(1)

2837 32
上午共享的那个varnish安装手册,个人看了下,有点不知所云,好吧~看来还是先安装玩玩!苦逼公司服务器没法连外网,不能用什么wget或yum命令直接下载安装,每每看到别人博客贴出的在线安装代码时,总有一股羡慕嫉妒“恨”冒了出来。。。好吧,既然没法上外网,那只能麻烦点通过下载源码来编译安装了!Varnish 3.0.4下载地址: http://repo.varnish-cache....
12月29日 · 2014年

Nginx在CDN加速之后,获取用户真实IP做并发访问限制的方法

16430 12
最近一直在帮一个购买了张戈博客付费服务的朋友做网站防护,为了简单抵挡一下竞争对手的DDoS攻击,他给网站开启了Incapsula的免费CDN服务。开启CDN之后,我之前给他写的Shell防护脚本也就宣告无效了,因为不管是正常访问还是攻击访问,脚本拿到的IP都是CDN节点的,而我不可能把CDN的节点IP也给禁用了,那就都不能访问了。为了解决这个窘迫,我想到了以前看过的Nginx访问限...
5月23日 · 2014年

菜鸟教程:Ngnix安装详解

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

Nginx网站使用CDN之后禁止用户真实IP访问的方法

10970 53
做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描、拉取、注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables 、 Nginx 的deny指令或者是程序来ban掉这些恶意请求。而对于套了一层 CDN 或代理的网站,这些方法可能就失效了。尤其是个人网站,可能就一台VPS,然后套一个免费的CDN就行走在互联网了。并不是每个CDN都能精准的拦截各种恶意请求的,更...
2月18日 · 2014年

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

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