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

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

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

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

  • 分享张戈博客的澳门威尼斯人娱乐官网优化方案,缓解国内云服务器配置低下的问题

    分享张戈博客的澳门威尼斯人娱乐官网优化方案,缓解国内云服务器配置低下的问题

  • 澳门威尼斯人娱乐官网集成SendCloud邮件代发,规避SMTP泄漏网站主机真实IP的风险

    澳门威尼斯人娱乐官网集成SendCloud邮件代发,规避SMTP泄漏网站主机真实IP的风险

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

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

WEB应用

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

最近在配置Haproxy代理的时候发现一个很有意思的事情:Haproxy在代理http请求会无脑加一个X-Forwarded-For(后文简称XFF),而不是将自身的IP地址加到已存在的XFF列表之后,WTF!还有这种神操作? 确认无误之后,我到Haproxy的github开了一个issue反馈了这个BUG(issue地址),最终了解到了Haproxy就是这样设计的,并得到了解决方案,而且这个issue的回复很有意思,特来博客分享下。 刚开始,我的issue提到Haproxy没有将自身IP地址append到已有的XFF列表之后,而是无脑又加了一个,这应该是个BUG: 官方开发GG回复让我升级到最新稳定版,我说升级了也是一样的,结果人家又回复我说Haproxy本来就是这样设计的: 我接着回复说Haproxy这样设计会导致很多开源程序获取真实IP异常,比如Twisted和packetbeat,但是官方说Haproxy 的设计100%符合HTTP协议标准balabala....既然都这样说了,我能说啥呢?只好用官方给的建议选项if none来拒绝Haproxy添加XFF,先解决我程序获取源IP错误的问题。 本以为这样就结束了,结果高潮来了! 一位很酷的法国大胡子发起了热心支援: 他的大概意思是说,既然Haproxy 100% 符合HTTP标准,那为啥没有遵循 XFF 的标准约定,将自身的IP地址添加到已存在的XFF列表末尾??也提到了多个XFF会导致很多程序无法读取,比如tomcat-8.5。为啥不加一个选项来选择使用多个XFF还是使用一个XFF等等balabala一顿说... 接着官方在HTTP标准上发起反驳解释(一大堆内容,此处不表),并在最后说明这样做是为了提高Haproxy性能,如果先判断是否存在XFF在高并发情况下性能大概下降2-3倍(非特指Haproxy)。 当然,官方最终还是给了一个解决办法,能够让Haproxy也像Nginx那样将自己的IP地址加到已有XFF之后,只需在Haproxy新增如下配置即可: 虽然官方给的答复可以解决问题,不过法国大胡子最后回复的一段话我觉得说得非常好: 大致意思是,我已经知道如何通过配置来解决,但是为啥 option forwardfor 这个选项没有和大部分人预期那样来设计与开发,而且搞得巨复杂? 然后直接给出他认为更好的开发设计,比如用 option forwardfor force 替代: 实现强制覆盖XFF,又比如用 option forwardfor append 来替代: 实现将自身IP地址加到已有的XFF之后。很明显,这样的设计才更有可读性,更好理解!他在最后还提到了,Apache/Nginx/Tomcat/Jetty/F5等等都是将自身IP地址添加到XFF之后,难道你Haproxy认为这些软件的使用率还不够高??喷得大快人心,再次赞一下法国大胡子! 总之,真的是很有意思的一个issue,同时也解决了问题,发现同样问题的朋友可以参考解决!
阅读全文
网站建设

解决升级Wordpress 5.1后回复评论框不跟随、页面刷新问题

近期,发现博客存在不少问题,先是发现图片暗箱、JS二维码失效了,接着评论点击回复按钮页面直接刷新,而没有评论框跟随效果,直到今天居然连网站CSS图标也挂了。。。 不能忍,决定花点时间看看到底是啥问题,打开F12并没有发现明显报错,既然是CSS图标挂了,那应该是我外链到fontawesome的css地址有问题。于是过滤了下这个地址,发现居然是301?? 类似情况如下: 原来是 cdn.bootcss.com 的CDN资源全部跳转到了 cdnjs.com 澳门威尼斯人(这个做法有点醉),而我的博客好多功能都引用了这个CDN,所以都异常了! 最后找了个替代CDN:https://cdnjs.net/ ,替换之后图片暗箱、二维码、CSS图标、延迟加载等功能都恢复了,但是评论回复按钮还是异常刷新的! 最后和鸟哥交流了下,他说是澳门威尼斯人娱乐官网升级到5.1.1导致的。网上找了下才发现是自己out了,不少博客已经给出了解决方案,比如懿古今博客:《澳门威尼斯人娱乐官网 5.1评论回复按钮失效评论框不跟随怎么办?》。 不过,鸟哥给了我一个更简单的解决办法(可以免去刷新CDN缓存、浏览器缓存的麻烦): 如果是begin主题,直接在functions.php里面找到:zmingcx_scripts 函数,在最后一个 } 之前加上: 这段代码其实就是在页面加载一段JS: 所以,非begin主题,只需要在主题的header.php加上如下代码即可: 这样就问题就解决了!
阅读全文
数据库

解决MySQL主从复制错误1595:Relay log write failure…

先交代下背景:我这边正在研究基于Docker的MariaDB Galera Cluster的自动化集群部署方案【以下简称MGC,后续有时间可以考虑分享下这个方案】,已经完成所有调试,想在生产环境部署一个MGC集群作为从先灰度测试。 生产环境主DB版本为MySQL5.5,新的MGC采用Mariadb最新10.3.12 stable版本,做好MGC集群,并导入一份从主DBdump出来的完整SQL之后,change master 开始创建主从,结果如下报错: 查了下资料,都是是磁盘满导致的,但是我这边磁盘威尼斯人娱乐场、权限都没问题,于是继续检查了下MGC节点日志如下: 里面有一个关键信息:binlog_checksum failed,看来报错和这个有关系了。查了下资料,应该是Mariadb默认打开了?slave_sql_verify_checksum(MySQL版本默认关闭),而主从版本又不一致,导致checksum失败。 解决办法也很简单,在MGC各节点的配置中加上:slave_sql_verify_checksum=0 ,关闭这个特性即可,具体有没有负面影响暂未深入研究。
阅读全文
大数据

解决Nexus Docker仓库搜索镜像返回500错误

之前用Nexus给团队搭建了一个数据仓库,其中Docker仓库配置教程已经整理分享到了博客《Nexus3最佳实践系列:搭建Docker私有仓库》,但是一直有个小问题,使用docker search来搜索会返回500错误: 因为平常不怎么使用搜索,而且Nexus前台也有镜像浏览页面,所以一直没花时间去解决。年前封网好不容易有点空闲,寻思着解决下。 经过定位,发现了问题所在:Nexus里面的Docker有3种类型仓库:group、hosted、proxy,也就是组合仓库、本地仓库和代理仓库,其中组合仓库就是本地仓库和代理仓库的聚合,通过测试发现只有本地仓库才支持search请求,其他2种类型仓库都会500错误。所以,报错的直接原因就是我将search的请求转发到了组合仓库导致的。 解决办法非常简单,在nginx转发里面加一条规则即可: Ps:详见之前的文章:https://zhang.ge/5139.html?。 以下是定位过程,不感兴趣的可以忽略。。。 1、确认Nginx代理日志是正常打开状态,并tail -f idocker.io.log实时查看日志; 2、执行docker search发起搜索: 3、回过来查看日志:发现500错误的内容如下(我这边Nginx改成了json格式): 2个重要的信息:搜索请求使用的是GET方法,请求路径是?/v1/search?q=hello-world&n=25。 4、直接对仓库后端一次发起请求,首先试了下group组合仓库,端口8082: 终于看到了关键的报错: 大概意思是不支持SEARCH,于是继续试了下hosted本地仓库,端口8083: 很明显是可以的,然后再试了下proxy代理仓库,都不行。因此确定只有本地仓库是可以搜索的! 回头看了下Nginx代理的配置,发现我之前将所有GET都丢给了组合仓库,也就是转发了拉取请求,将PUT丢给了本地仓库,意思是转发了推送请求。看来,还需要多加一个规则,将搜索请求转发到本地仓库。 也就是得出了上文的规则: 这个规则明显要加到PUT转发规则之后,以覆盖之。 生效后,再次执行 docker search idocker.io/hello-world,结果如下: 问题得到解决~! 当然,还有点遗憾的是代理和组合仓库不支持搜索~希望后续Nexus版本能够考虑加上这个特性。
阅读全文

推荐文章 专题文章 随机文章

  • 解决升级Wordpress 5.1后回复评论框不跟随、页面刷新问题
  • 博客网页导致电脑CPU飙升的问题解决记录
  • 博客集成Hitokoto·一言经典语句功能
  • 澳门威尼斯人娱乐官网发布/更新文章、提交/审核评论自动清理阿里云CDN缓存
  • 解决网站静态缓存后WP-PostViews插件不计数的问题
  • 利用HSTS安全协议柔性解决全站HTTPS的兼容性问题
  • 惊现Haproxy重复添加X-Forwarded-For问题(附官方解决办法)
  • 分享一个Nginx正向代理的另类应用案例
  • 解决网站404页面返回200状态码问题
  • 网站集成打字震动特效JS代码改进版
  • Haproxy进阶管理:命令行控制后端节点上下线
  • 小网站最简单实用的动静分离优化方案
  • 惊现Haproxy重复添加X-Forwarded-For问题(附官方解决办法)
  • 分享一个Nginx正向代理的另类应用案例
  • 解决网站404页面返回200状态码问题
  • 网站集成打字震动特效JS代码改进版
  • Haproxy进阶管理:命令行控制后端节点上下线
  • 小网站最简单实用的动静分离优化方案