slowdown 风暴

昨天晚上,wordpress网站突然显示不出图片来。 紧急将所有插件停掉,重新恢复了一遍,图片可以显示了。但是网站巨慢,等待时间从1秒延迟到20秒: 当晚各种调试无效。早晨继续调试。优化nginx, mysql, php,都没什么效果。最后定位在php-fpm上,因为静态页面调用时间只有200ms,而一个phpinfo()就要4-5秒。 随手上网一查(顺便说一下,我现在已经不用google了,缺省搜索引擎是duckduckgo), 有人指出这不是php-fpm的问题,而是dns解析的问题: 有些资源的dns解析有问题,系统定位到一个错误的资源上,报错,然后回到缺省值,又报错,这样反复循环造成的。 解决方案是在hosts文件中加上 127.0.0.1 eddyemma.com 试着做了一下,似乎果然清理了散布在外的dns缓存,网站立刻就快了起来: 想要恢复到从前慢的样子,居然不可得了。 仔细想想,前几天新部署了一台dns服务器,随手将域名设为了eddyemma.com,然后修改了host记录和A记录,然后就忘记了。这算是no zuo no die吧。

August 26, 2018 · 1 min · eddy

工具控

过年的时间都用来调整wordpress了。不断调整性能,配置服务器,实验各种工具。 自己的网站配好了,就打算帮助水哥搬家(庆祝水哥新婚,还是应该发红包比较传统而保险)。可是按照nginx的教程配了多个网站之后,发现凡是访问”flywow.net“的都会自动跳转到我的eddyemma.com去。 试着写一个静态页面,比如flywow.net/index.html,又完全正确地显示。百思不得其解,只好恢复水哥在vps上的地址。但是他原来的网站已经严重被黑,所有的主题都已经被感染。服务器杀毒之后也不管用,重启片刻就宕机了。我用jetpack监控,jetpack就不停地发邮件给我。 fastcgi 到了晚上,水哥回重庆了,问我网站的密码。临时登录上去调试,想着既然html没问题,说明域名指向和server block没问题,那么问题出在Php解析上。 location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 我的网站是这样配置Php的,唯一可以修改的地方就是$document_root了。于是把水哥的网站调整为绝对路径: location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/flywow.net/$fastcgi_script_name; include fastcgi_params; } 事就这样成了。 工具列表 这两周把从前抛下的技术基本上捡起来: nginx服务器配置,php5.4升级为7.2,https,http/2,fail2ban, multisites,wp优化,css 异步传输和阻塞处理,html minify, cdn,seo, 以及各种网络监控工具:pingdom, gtmatrix之类,都搞了一遍。 经验就是,其实比起当牧师,我还是更喜欢做IT——别给我说“一个不会IT的吉他手,不是好牧师。” 应用(哈哈,我在查经吗?) 当然,工具是为了工作,工作不是为了工具。从下周起,我就要开始认真工作,这套技术和工具就成为过去了。

February 23, 2018 · 1 min · eddy

fail2ban

Jimmy来教会访问,中午吃饭的时候随口聊了几句技术问题。Fiona在边上说,不准说听不懂的黑话……于是我们一起怼她说,如果我们不说黑话,你怎么可以在国内自由地发facebook呢? Jimmy加上一句,你怎么能在国内上instgram呢? 所以,有的时候后端技术还是需要的,虽然在前端的那位,看起来特别风光靓丽。 一旦自己开始管理网站,就发现需要处理的问题太多。我的朋友Water的网站被人黑的已经比春晚的猴子还要黑了,各种bot在上面肆意妄为,还有用字典攻击phpadmin数据库密码的项目,有一个名叫auth-ready.php的文件负责把输入的所有用户名和密码发给一个google邮箱和一个俄罗斯的邮箱(幸好我懒,没有配mail服务,所以应该什么也发不出去)。 只有使用fail2ban,开始认真地防范。 fail2ban基本上有三个部分组成: jail:配置对某个日志文件的监控,命中条件,定义要应用的正则表达式过滤器,以及要采取的行动,封锁ip的时间等等。 filter: 一个正则表达式,用来提取日志中符合条件的ip地址。比如,failregex = ^<HOST> -.*”(GET|POST|HEAD).*HTTP.*” 404 ,据提取nginx访问日志中一切 get|post|head 返回404的ip。 举例如下: 68.180.228.151 - - [18/Feb/2018:21:30:35 -0600] "GET /xiaoshuo/6203/du1968347.html HTTP/1.1" 404 169 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" 68.180.228.151 - - [18/Feb/2018:21:30:37 -0600] "GET /xiaoshuo/5749/ HTTP/1.1" 404 169 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" 68.180.228.151 - - [18/Feb/2018:21:30:37 -0600] "GET /xiaoshuo/20580/ HTTP/1.1" 404 169 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" 68.180.228.151 - - [18/Feb/2018:21:30:38 -0600] "GET /xiaoshuo/4552/du1192650....

February 18, 2018 · 1 min · eddy

http/2 enabled

愚昧地把自己搞昏,升级到Nginx 1.13.8,然后就不知道如何配置了。原路返回,重新降级到1.12.1,然后加上了http2协议。 估计移动端会快一点了。 http2测试

February 18, 2018 · 1 min · eddy

电子前线基金会

The Electronic Frontier Foundation(电子前线基金会)在互联网流行之初的1990年就成立了,今年已经快30岁了。这三十年之中,eff帮助个人和小公司打了若干官司对抗大公司和政府,保护个人的隐私。其中的各种案例,网站上都有,我就不罗嗦什么叫privacy, 什么叫free speech了。 我用eff的项目,主要是certbot,一个免费的ssl/tsl认证机器人。这个机器人是eff一个更大的项目,叫做“加密整个互联网” 的一部分,可以自动为网站配置“Let’s Encrypt”加密证书。 说到加密,10年前我曾经为公众集团开发福利彩票自动开奖系统。那时没有区块链技术,要设计一个不可修改不可抵赖不可计算不可预测的开奖协议,好像难度要大一点。不管怎么说,我们把一堆技术加邮电机箱加音乐和动画放在一起,搞了这个高科技产品,通过了专家认证,结论是“全国首创,国际先进”。实际上,也在重庆时时彩运行了多年,5分钟一期开奖,没有出任何大的问题。 后来,国家密码委选择专家组成员,重庆密码委就把我给推荐上去了。至于最后进了委员会没有,我就完全不知道了,或许是因为他们保密工作做得太好了。 花了一点时间,把网站从webhosting托管迁移到了独立服务器上。租了一台服务器,配置比较旧,内存ddr2,但是好歹有四个intel Xeon 5150 cpu, 16G内存,跑我这样几乎没有流量的小网站还是绰绰有余。 这个机器的价格和我在ipages上的托管费用已经相差不大,所以我还是老老实实自己做站长算了。 自己管理的好处在于,不是共享主机,就可以用certbot配置https://eddyemma.com了。传输用户名密码之类,以后就不是明文传输了。作为一个有二进制洁癖的程序狗,至少心情要愉快一点。为此,我把电话费卡掉了1/4,先这样对付着。Emma也自愿削减1/4电话费一个月,看看用不用得惯。 本来这种小网站,一个月多的时候也就几百次访问,装个apache就足够了。可是朝飞用国内主机用惯了,对性能有洁癖,一定要求用nginx。所以不得不硬着头皮搞了半天,算是基本把网站迁移到LEMP上。发一篇小文纪念一下。 从ipages迁移出来,想着sitelock的保护和cdn加速丢掉可惜,于是顺便查了一下sitelock的评论,似乎风评很不好。特别有意思的是,发现我之前用的几个托管网站,bluehost, ipages都是一个叫做EIG的集团公司下属的品牌。这个EIG公司一共有83多个网络托管公司品牌,有4百多万个网站客户。 但是,大多数托管服务在站长们的打分中,都不高。bluehost-3.2,ipages-1.7,等等。 不由得想起Priceline.com下面的priceline,booking.com,kayak等购票网站,其实也是一家。不过是创造一种竞争的样子而已,骨子里总是想着垄断的。 仔细看了一下,也就释然了。在wordpress上装了一个wordfence插件,以后自己负责安全问题了。 顺便就把域名迁移到google的domains.google上去了,因为某位大大说,不要把托管网站和域名注册放在一起,白送一年也不要接受,而应该找专门的域名注册公司注册域名。好吧,我就直接把域名迁移到google去,他家的服务是免费隐私保护,加上100个网站邮箱自动转发到gmail上。从前注册余下的时间google也继续算,只是收取另买1年域名的费用。 等到下周域名迁移好了,把各种dns配好之后,网站就可以正常运行一段时间了。水哥的网站也迁过来当邻居,免得他继续在超卖的共享vps上受折磨。 上一篇”wire“下面有人留言,说wire也被封锁了,问怎么办。没办法,只有两种姿势可以解决——肉翻和网翻。当然,用微信,不翻也是一策。 顺便说一下,既然用了https,给我留言也就安全了。所有的留言都是需要审查才能放出来的,所以留言的时候加上标签“#私聊”,我就不会审核通过了。这样大概什么都可以谈。

February 14, 2018 · 1 min · eddy