坚信科学,分享技术

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Category Archives: WEB相关

WEB相关记录了web相关的运营、前端技术等等。

又拍云cdn试用体验

十一之前,又拍云存储(upyun.com)市场部的谢静同学邮件我,让我试用又拍云的功能。之前在infoq或者是之类的技术讲座上有看到过又拍云的报道和技术架构讲解,印象还是不错的,本着支持创业提升期企业的态度,特写此文写下全部试用感受。 用法 我的用法比较简单,因为diahosting给我提供的vps在国外,流量是个大问题,所以写博客时,基本都不上传大图片。遇到要上传的图片,之前基本都是两个地方,一是淘宝(嘿嘿,提醒淘宝的兄弟不要把那个上传的口关了哈,淘宝的cdn岗岗的!),二是新浪微博。 上述两个老办法的坏处:淘宝的话,每次上传打开步骤都老麻烦了,又是密码又是选上架之类的。微博呢,又老有那个水印。二者图片质量都不行,老是压缩得不行了。 申请了又拍云存储之后,直接使用它的ftp功能,无压缩,cdn速度也岗岗的。http://www.54chen.com/architecture/how-to-document-code.html 此文中第一个图即为又拍云提供。 使用记录(mac下纯ftp命令记录): localhost:~ chenzhen$ mkdir -p 54chen-pic/1008 localhost:~ chenzhen$ cd 54chen-pic/1008 localhost:1008 chenzhen$ cp ~/Downloads/wallpaper_1282030786.jpg . localhost:1008 chenzhen$ ls wallpaper_1282030786.jpg localhost:1008 chenzhen$ ftp v2.ft

Continue reading

Posted in WEB相关 | Tagged | 2 Comments

ruby快速学习手记(ubuntu)

ruby 1993年诞生于日本。rails是用ruby写的web framework,所谓的ROR正是这一搭档。 ruby安装 ubuntu 10.04很简单,安装ruby和rails: sudo apt-get install ruby sudo apt-get install rails 小试牛刀 rails first_rails cd first_rails/ ruby script/server 浏览器打开127.0.0.1:3000 it's works! IDE:eclipse 语法特点 解释型 适合文本处理,类似perl 完全面向对象 无分号 方法定义关键字:def+end 木有大括号({}) 无需指定类型 局部变量用小写字母或下划线开头即可 全局变量用美元符作为前缀 $;而实例变量用 @ 开头;类变量用 @@ 开头;类名、模块名和常量应该用大写字母开头 …

Continue reading

Posted in WEB相关 | Tagged , | 1 Comment

nginx防hashdos模块使用帮助

经过上周一周朋友们帮忙测试和bug fix,nginx_http_hashdos_module已经达到可以线上使用的水平,下面是使用记录。 下载 #wget --no-check-certificate https://github.com/54chen/nginx-http-hashdos-module/zipball/master #mv master nginx_hashdos.zip #unzip nginx_hashdos.zip 编译安装 #tar zxvf nginx-1.0.xx.tar.gz #cd nginx-1.0.xx/ #./configure --prefix=/opt/soft/nginx --with-pcre --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=../54chen-nginx-http-hashdos-module-f84d909 #make && make install 配置注意事项 在http段,增加如下: hashdos on; body_max_count 1000; 在各自的location段,要按照业务情况来加: client_body_buffer_size 2m; client_max_body_size 2m; …

Continue reading

Posted in WEB相关 | Tagged , | Leave a comment

nginx防hashdos模块释出

2012.1.7 更新 编译的时候推荐使用nginx-1.0以上版本,不要加--with-debug参数编译,(感谢agentzh指出)。 hashdos这个事,严格意义上不是各种语言的错了(不过perl的确处理得很好),但是用nginx来擦屁股要干净些。 借鉴tomcat的作法,实现了下面这个nginx-http-hashdos-module,通过设置hashdos(默认on)的开关和body_max_count(默认值1000),对nginx后面的服务进行安全防护,相比对php或者java进行patch,这或许是最好的办法了。 nginx-http-hashdos-module项目地址 https://github.com/54chen/nginx-http-hashdos-module 如何使用 1.下载zip后保存到一个目录,如~/nginx-http-hashdos-module。 2.cd nginx-1.0.9/ 3.重新编译和安装nginx ./configure --prefix=/opt/soft/nginx --with-pcre --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=/path_to/nginx-http-hashdos-module/ && make && make install 4.配置打开: hashdos on; body_max_count

Continue reading

Posted in WEB相关 | Tagged , | 11 Comments

移动互联网api设计实践

过去一年时间里,都在做中国移动互联网下的API设计工作,所面对的情况可能是最具中国特色的了。如果你在尝试构架一整套的新的API供你的客户端使用,可以尝试以下的几点: 1)api所使用协议,要能够不怕被加js、加广告和各种代码。 全国各地的运营商,有习惯挂广告、加代码等等,要做的事情就是在客户端做各种解析判断。实践证明,这帮孙子的设备是检测http协议的head头里的content-type,如果是html/text则会加,如果是text/json就不加了,所以,你懂的。 2)api可视化 你的app上架了,后端也布好了。然后呢,就天天看下载量。但后端好坏一问三不知。所以在设计api时,要提前回答以下问题: 1.此时此刻,有多少个app正在调用这些api,每分钟多少个? 2.他们(api)有快? 3.能否很简单地通过浏览器快速debug? 4.能否快速禁止单个用户? 3)链路 在幅员辽阔的我国,总是一个地方到一个地方的IDC直接就ping不通(移动互联网下更甚)。于是需要花钱自己打通这些地方,没有专线,只有代理再代理。 4)api quota与perfcounter 对api进行quota限制,针对每个api每个人,都有限额。 这个限制的传统做法: 1.每天的上限调用次数。每天半夜清空,一天一个量累计。 2.每分钟的频度。这个防止有恶性的突发情况。 上述二者,缺一不可。 perfcounter用于对api的监控设计指标,如果一个api有异常,应当十分灵敏地得出结论,而不是误报连连。

Continue reading

Posted in WEB相关 | Tagged | 3 Comments

redmine极速安装手记

Redmine是用Ruby开发的基于基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。 机器环境: ubuntu 10.04 dell optiplex 380 root权限下操作 1)apt-get install mysql-client mysqld-server 2)进mysql: create database redmine_default; GRANT all ON redmine_default.* TO root@'%' IDENTIFIED BY 'miliao'; FLUSH PRIVILEGES ; 3)apt-get install redmine redmine-mysql subversion libapache2-mod-passenger 4)ln -s /usr/share/redmine/public /var/www/redmine 5)a2enmod passenger …

Continue reading

Posted in WEB相关 | Tagged , , | 1 Comment

[flash]建立socket安全策略文件服务器

前因 Flash被广泛应用于互联网各个方面,是因为它提供了各种各样的特性,其中很重要的一点就是,可以用flash建立TCP连接到服务器然后交换数据。从网络管理员的观点看,一个互联网的服务器能够连接进到内网里来,是一个很恐怖的事情,所以flash搞出来一个安全策略文件。 改变 Flash Player 9,0,124,0 版本对这个策略文件进行了两个重大改变:一是所有的端口都需要在策略文件里声明了,以前的版本只需要1024以下的端口需要进行声明;二是可以集中到843端口进行集中式的托管了。Flash Player 9,0,124,0建立的socket连接,会先去请求843端口,如果这个端口没有策略文件,则会去你要连接的端口本身请求策略文件,如果二者都没有,则会被拒绝连接。 控制过程解读 1.Flash Player先到请求的843端口请求策略文件,如果没有,进行第2步,如果site-control为none则拒绝掉,如果site-control为all则进行第2步。 2.如果在AS中写了Security.loadPolicyFile() ,(它并不是一定生效的,必须在843端口的声明中允许引用其他的策略文件后才能生效),开始读取策略。 3.最后一步是检测要连接的端口是否有权限,这步检测要在843端口中声明需要检测端口才会去做,如果843声明了而策略文件里没有,则会被拒绝。 庆亮哥小更正:请求843和你的指定端口后,会访问当前访问域名下是否有crossdomain.xml文件,如果你的端口不是80,那么请求最多可能三次。 万能脚本 这个兄弟是adobe的开发人员吧,搞了两个脚本

Continue reading

Posted in WEB相关 | Tagged , , , | 2 Comments

[nginx]如何在access log中记录post请求的参数

移动互联网行业开发过程中,服务端经常会需要检查是否收到请求,收到什么样的请求,最简单的办法就是看nginx的access log,常见的nginx配置中access log一般都只有GET请求的参数,而POST请求的参数却不行。 http://wiki.nginx.org/NginxHttpCoreModule#.24request_body $request_body This variable(0.7.58+) contains the body of the request. The significance of this variable appears in locations with directives proxy_pass or fastcgi_pass. 正如上文件所示,只需要使用$request_body即可打出post的数据,在现存的server段加上下面的设置即可: log_format access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent $request_body "$http_referer" "$http_user_agent" $http_x_forwarded_for'; …

Continue reading

Posted in WEB相关 | Tagged , , | 12 Comments

squid缓存失效之谜:一步步提高squid缓存命中率办法记录

手里有个前端自己做cdn的服务器,结果发现进出流量相等,这是个诡异的事情,因为一般来说,做前端缓存的机器,流量基本上很长时间里都是出多进少的。 一开始的时候,是nginx做的nginx_cache,发现进出流量相等后,换上了squid 3.0,使用命令: squidclient -p 8088 mgr:info (启在8088) 发现如图所示的几个命中率,相当低下,一般的WEB服务器缓存30-60%是正常的,而CDN作用的应该说80%以上才是正常的。 刚启动squid的时候,个人认为是因为缓存文件还没有拖动到前端来,所以是正常的,但结果过了一天后,还是没有看到进流量松动。 第二天来,硬盘已经过了10G了,还是不行。通过cat access.log来看,cat access.log|gawk '{print $4}'|sort|uniq -c|sort -nr 发现TCP_MISS/200相当的多,再看流量图,进出还是没有变化。杯具。 于是乎,想到了直接tail -f access.log,看看究竟都有什么东西在访问。 一条接一条的xxx.jpg?unid=1111触动了我(公司用来做用户行为分析的参数),就这样白花花的浪费了缓存。 解决方案: 幸好,squid前面,还有一层nginx,于是考虑在nginx上做转发,将所有的xxx.jpg?xx=xx全部转到 xxx.jpg去,过滤掉url中的参数。尝试了几个不行,内置的参数$url $request_url都不可行。 只有一招利用403来跳转的可行。 location ~* (.jpg$)|(.png$)|(.gif$

Continue reading

Posted in WEB相关 | Tagged , | 6 Comments

说说中国互联网公司的地域差异

我们,是一个尚义轻利的民族。 中国山东,有这样一对夫妇: 刚刚结婚时,妻子在济宁,丈夫在枣庄;过了若干年,妻子调到了枣庄,丈夫却一纸调令到了菏泽。若干年后,妻子又费尽周折,调到了菏泽,但不久,丈夫又被提拔到了省城济南。妻子又托关系找熟人,好不容易调到了济南。可是不到一年,丈夫又被国家电业总公司调到重庆。 于是,她所有的朋友,就给她开玩笑——你们俩呀,天生就是牛郎织女的命。要我们说呀,你也别追了,干脆辞职,跟着你们家老张算了。 但是,她以及公婆、父母,都一致反对。“干了这么多年,马上就退休了,再说, 你的这么好,辞职多可惜。要丢掉多少钱呀!再干几年吧,也给孩子多挣一些。” 夫妻两个至今依然是牛郎织女。 英国某小镇: 有一个青年人,整日以沿街为小镇的人说唱为生;这儿,有一个华人妇女,远离家人,在这儿打工。他们总是在同一个小餐馆用餐,于是他们屡屡相遇。时间长了,彼此已十分的熟悉。 有一日,我们的女同胞,关切地对那个小伙子说:“不要沿街卖唱了,去做一个正当的职业吧。我介绍你到中国去教书,在那儿,你完全可以拿到比你现在高得多的薪水。” 小伙子听后,先是一愣,然后反问道:“难道我现在从事的不是正当的职业吗?我喜欢这个职业,它给我,也给其他人带来欢乐。有什么不好?我何必要远渡重洋,抛弃亲人,抛弃家园,去做我并不喜欢的工作?” 邻桌的英国人,无论老人孩子,也都为之愕然。他们不明白,仅仅为了多挣几张钞票,抛弃家人,远离幸福,有什么可以值得羡慕的。在他们的眼中,家人团聚,平平安安,才是最大的幸福。它与财富的多少,地位的贵贱无关。于是,小镇上的人,开始可怜我们的女同胞了。 只要锄

Continue reading

Posted in WEB相关 | 25 Comments
Page 1 of 41234