手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

成功利用apache对内容进行替换[更新]

说是成功了,但其实最终我还是通过PHP来实现的,因为遇到的问题是对方是gzip后的数据,无法直接替换,只能用php先将gzip的内容解压开,替换完后再gzip输出。
头疼。

参考:apache的mod_ext_filter,这个是功能比较强悍的替换模块了
nginx下当然也有更好的。不过因为我的服务器目前用的是apache。而且我习惯了用apache的一些配置,一下子要换到nginx不太习惯。
以后慢慢考虑吧。

---------

如果用PHP做,有些网站的gzip无法用:gzuncompress,gzinflate,gzdecode解压的。
可以用这个函数:http://www.jb51.net/article/15262.htm,原网站没有格式化,所以我格式化了一下:

PHP代码
  1. function gzdecode2($data) {  
  2.     $flags = ord(substr($data, 3, 1));  
  3.     $headerlen = 10;  
  4.     $extralen = 0;  
  5.     $filenamelen = 0;  
  6.     if ($flags & 4) {  
  7.         $extralen = unpack('v'substr($data, 10, 2));  
  8.         $extralen = $extralen[1];  
  9.         $headerlen += 2 + $extralen;  
  10.     }  
  11.     if ($flags & 8) // Filename  
  12.     {  
  13.         $headerlen = strpos($datachr(0), $headerlen) + 1;  
  14.     }  
  15.     if ($flags & 16) // Comment  
  16.     {  
  17.         $headerlen = strpos($datachr(0), $headerlen) + 1;  
  18.     }  
  19.     if ($flags & 2) // CRC at end of file  
  20.     {  
  21.         $headerlen += 2;  
  22.     }  
  23.     $unpacked = @gzinflate(substr($data$headerlen));  
  24.     if ($unpacked === FALSE) {  
  25.         $unpacked = $data;  
  26.     }  
  27.     return $unpacked;  
  28. }  
这回就可以了。。。

 

安装VPN。。。debian / centos

说实话,xen和openVZ安装VPN我真的不是特别了解 ,以前只知道openVZ默认不能装,因为没有ppp和tun设备,但即使有了ppp和tun设备 后,其实,iptables的NAT转发也不是每台机器 都支持。
我在cloud3k上的VPS后台里可以安装ppp和tun设备 ,但安装后无效,发了一个TK给客服,客服说是开通了NAT转发。然后就OK了。
但网上的一些教程中的iptables其实都不能用。因为那句: /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE,其实是针对xen的VPS的。openVZ根本 就没有MASQUERADE这类的用法,而且。。。eth0,在openVZ上都没有。只有venet0。所以,我又找了一些资料,比如 :
1、http://qiaodahai.com/personal/article/2012/centos-6-pptpd-one-key-installation.htm
2、服务器架设:PPTPD VPN一键安装包 For CentOS 5
3、BuyVM OpenVZ VPS Debian安装PPTP VPN

其实现在网上有openVZ的一键安装包,我这里就不多介绍了,google一下或者百度一下,N多。
安装完后就三个功能
1、安装pptpd服务
2、修复pptpd服务
3、设置帐号
非常方便。但设置帐号后一定要去chep-secrets文件里看一下,理论上是可能有一个所谓的默认帐户存在的。注意删除一下。

Tags: vps, vpn, openvz, debian, centos

二手商品出售

多年以来,慢慢慢慢集成了N多的工手商品,有兴趣的朋友可以向我购买,(所有商品均可小刀)

1、nook2 ,可触摸的电子书(可刷android系统),我买的时候 1200,实际使用时间不超过24小时,要说成色嘛,还算新吧。。。现在嘛 ,明显不要这个价了,可以看淘宝价后再小刀我【已出】

2、蓝牙键盘,本以为是一个很大的键盘,可以让电脑用的,结果。买回来才发现是IPAD和iphone用的。纠结
http://item.51buy.com/item-202961.html ,购买时间2012-06-28
【已出】

3、HP 5510(hp的瘦客户端),可以用来玩的,装的是winCE,可以直接运行。耗电量不高,但我好象没电源了。所以。。。

4、福珑电脑,龙芯第一代,内存加过,如果你有兴趣玩玩这个系统倒是可以的,当年,我买了1800,现在嘛 ,你懂的。都4年过去了。。。。如果你怀旧,可以考虑

5、家中的沙发(这个只限上海地区,可当床,原来是为了新房入住的时候买的,当年买的时候750,不过已经N年了,也没有好好的用过它),如果你有兴趣,可以大刀,但需自提。。

6、对了,还有gameboy advance,有两盘卡带,恶魔城+KOF,这么多年没用,好象卡带有问题了。当年买了600,现在嘛。黑黑。。。而且GA居然是没有夜光屏的,如果你对旧机有收藏,可以考虑。同1一样,实际使用时间不超过50小时,算是一个比较纠结的东西。

其实还有好多,一下子想不起来了都。。有兴趣可以直接留言啊。哈哈

-------

2012-12-11新增:

1、iphone/ipad 的蓝牙上网设备(类似苹果皮,不过它是蓝牙的。可以插双卡),使用时需越狱。当时淘宝买的时候300多。现在嘛,其实价格没大跌,如果有兴趣玩的人倒是可以收。因为我升到6.0.1不太想越狱了。而且现在也花钱买了很多正版的软件。越狱不太想了。正规点

thinkinlamp 数据库大会

归到数据库分类实在让我有点汗颜,毕竟这只是一个聚会性质的交流。并非真的就是与数据库相关,但内容因为还是涉及到了数据库,所以。。。归到这里吧。

这次大会去的比较晚了,因为小朋友的屁股上发了点东西(俗语:风疹块),所以本来是考虑不去的,但因为三件事,我还是去了:1、小朋友的屁股上用了以前的药,好了很多,几乎没了;2、票子送不掉,很多人一听是早上8点到场,都大义懔然的放弃了;3、锅巴引诱我,说是给我准备了特别的礼物

意外:意外在这里看到了前前同事,余老板,原来,她还在篱笆网,她笑称自己是钉子户,其实我是真的挺佩服她,能在国内一家互联网公司做超过5年,并不是一件容易的事情。

废话说了那么多,现在就让我们开始吧。
因为去的晚,所以对数据库与SSD的存储没有听到多少,但说白了,听了对我也没多大用处,小公司吧,用不上这些,大公司吧,可挑选的余地又太大,如果求稳,就研究不了新技术 ,如果求新技术 ,却又不能保证一定稳定,象网易,在云阅读上就用了SSD的硬件,我想他在备份上面的代价会是多少呢?小公司真的烧不起这个钱啊,虽然说混合应用的SSD+SATA的盘1T也才1000左右,但我们没那么多机房来折腾,也不会有dell公司的人来帮忙维护和技术支持,我们不是VIP用户啊,亲

第二个演讲的又是让我很郁闷的,虽然我在事前其实也很想知道这一块的东西,legenddb,类似于mysql proxy或者说mysqlcluster的工具,他们确实走在了我们的前面,但对应用型 的公司来说,没人敢用就是一个很大的问题。你没有完整的技术支持,不能保证后续的服务,出了BUG,你不能在很快响应。国内很多公司选择了mysql,有很大一部分原因在于,mysql社区版是开源的,所以可以有针对性的对它进行修改。如果你legend开源了,你还能走多久?legenddb,老谭也在台上说了,目前在某些join查询上效率还不是很高。而legenddb最大的功能其实就是用来做分布式数据库,并且通过timeline来做数据同步等(为了一致,每台服务器还必须得精准校验时间,否则可能会出问题,即数据出错),有兴趣的朋友可以上他们的网站上看看:http://www.mysqlab.net/,我感兴趣的原因是,它们说他们的软件是基于go开发的,黑黑

第三位演讲的是支付宝的朋友。讲了一个数据库的架构方面的设计,即又要保证ACID,还得让CAP这个标准也能够相对较好的应用。什么时候选择ACP,什么时候选择APC,都是一个讲究,在这上面,他用了一个简单的例子,即:用户付钱给商家。看起来很简单,但因为支付宝是担保交易,所以,简单的看起来就是:
1、用户支付时:用户update余额,中间帐户update状态
2、物流进行时:中间帐户维护状态
3、用户确认时:商家update余额,中间帐户update状态
只是在第一步的时候,特别是在聚划算的时候,传说每秒就是几千单,如果从传统意义上来说,没有一台服务器能够达到这样的效果,于是就采用了类似分片的效果,将中间帐户切分成N份(也就可以用N台机器来处理),然后再通过事务合并(这一段是我猜想。。。)
有时候说起来简单,做起来很复杂啊。比如他说,当搞活动的时候就加几台机器,活动结束后就减几台机器。对于程序来说,加减法并不是数学上的加减法,每加一台服务器,带来的成本和风险就会大几分,怎么把握也是一个难题。当然对于我这样的应用型人来说,暂时遇不到,很幸福啊。
好象我对第三位演讲的内容也介绍的比较水,但由于他的内容集中在CAP把握的度上,所以我也不太好介绍,毕竟我对这方面的掌握也不是特别的深

第四位是神仙,(http://xiezhenye.com/),介绍了mongodb的auto sharding。好吧,小公司又是不太会用的一个项目,在小项目中,mysql的查询效率并不会太低于mongodb。所以我就稍稍看了一下,主要也是因为auto sharding是自动切分的,我就不多介绍了。
不过,技术人员的通病就是,自己会用,但不会说。或者是在QQ里在聊天群里非常能说,但现场三棍子打不出个闷屁来,这都是一个问题。下一步我就是要建议thinkinlamp经常搞搞小型聚会,先内部交流,逼着大家上台讲。讲完了再下来沉淀,然后所有人讲完后,再接着讲一遍。只有这样,以后才能真正的走出来,不然,永远只是幕后,没有人认识你啊。

第五位是新浪微博的朋友。他先是很自我宣传了一下,然后介绍了他们在项目中用redis处理计数的功能。表面上很简单的几个数字,来的却并不方便,这其中最大的问题就是用户基数。用他们的话来说,就算是做cache,也不是那么简单的。注册用户3.x亿,每天发贴有1亿+,峰值达到了300W+/秒(这个数据记不清了,希望没错,据说是在春节那天),1亿的数据,相应的人员的微博数要加1,相关人员的未读数要+1,这些存储所花的代价是多少?好吧,我们先用100,000,000折腾一下,1M是多少字节?1G是多少字节?光这些+1所占的空间是多少?如果再加上要绑定的key呢?即用户ID,但又不是直接就用户ID+1,而是uid+comment,uid+post这类组合的key,这样一算的话,它的key得是多长?占了多少空间???说说都是很恐怖的事情,不要说是在做了,所以新浪在不停的为key减少空间。毕竟value只是一个整型,占的空间并不大,相反,key却真正的成了最大的存储空间占用的罪人。这一块的水比较深,我不多介绍。

其实中间还有一位厂商,DSG,但是我没有好好听,毕竟,oracle对我们来说太大了。。我还是初级用户。我很蛋定,谢谢。。。

中间,为了拿到锅巴准备的礼物,上去做一个“oppa 江南 style”的鸟叔POSE。。。。

还是APNS的一些问题

其实在做APNS发送信息的时候,总会有一些信息好象没有收到。所以我就在想是什么问题。

看到这一篇的时候,才感觉可能会是这种原因:

问题四:Push消息丢失

如果客户端偶尔能收到消息,但有丢失,那很有可能是服务器往苹果APNs服务器写入失败、或者写成功后苹果服务器未发送(批量往一堆token发送消息,如果第一个token发送失败,那么苹果不会再给后面同一批token推送消息)。失败原因可通过向苹果做Feekback查询。

---

这段文字来自:http://yangzl.net/tag/ios%E5%BC%80%E5%8F%91%EF%BC%8C%E6%B6%88%E6%81%AF%E6%8E%A8%E9%80%81/

同时觉醒和我说,feekback在这里可以查询一下:http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html

里面是这么一句:Feedback Service

Sometimes APNs might attempt to deliver notifications for an application on a device, but the device may repeatedly refuse delivery because there is no target application. This often happens when the user has uninstalled the application. In these cases, APNs informs the provider through a feedback service that the provider connects with. The feedback service maintains a list of devices per application for which there were recent, repeated failed attempts to deliver notifications. The provider should obtain this list of devices and stop sending notifications to them. For more on this service, see “The Feedback Service.”

证明还是可以查的嘛 .准备下次慢慢查一下