jackfeng

导航

2014年2月11日 #

http 301和302的区别

摘要: 1、什么是301转向?什么是301重定向? 301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。 2、什么是302重定向? 302重定向又称之为302代表暂时性转移(Temporarily Moved ),英文名称:302 redirect。 也被认为是暂时重定向(temporary redirect),一条对网站浏览器的指令来显示浏览器被要求显示的不同的URL,当一个网页经历过短期的URL的变化时使用。一个暂时重定向是一种服务器端的重定向,能够被搜... 阅读全文

posted @ 2014-02-11 17:53 jackfeng 阅读(665) 评论(0) 推荐(0) 编辑

nginx rewrite

摘要: nginx内部支持url rewrite,内部编译进去了rewrite模块,nginx的rewrite模块类似于apache的rewriterule功能;支持多种规则和正则表达式;详细介绍如下:Nginx Rewrite规则相关指令 Nginx Rewrite规则相关指令有if、rewrite、set、return、break等,其中rewrite是最关键的指令。一个简单的Nginx Rewrite规则语法如下:rewrite ^/b/(.*)\.html /play.php?video=$1 break;如果加上if语句,示例如下:if (!-f $request_filename)rewr 阅读全文

posted @ 2014-02-11 17:46 jackfeng 阅读(551) 评论(0) 推荐(0) 编辑

nginx url重定向

摘要: nginx内部支持url rewrite,内部编译进去了rewrite模块,nginx的rewrite模块类似于apache的rewriterule功能;支持多种规则和正则表达式;详细介绍如下:Nginx Rewrite规则相关指令 Nginx Rewrite规则相关指令有if、rewrite、set、return、break等,其中rewrite是最关键的指令。一个简单的Nginx Rewrite规则语法如下:rewrite ^/b/(.*)\.html /play.php?video=$1 break;如果加上if语句,示例如下:if (!-f $request_filename)rewr 阅读全文

posted @ 2014-02-11 17:33 jackfeng 阅读(4179) 评论(0) 推荐(0) 编辑

2014年1月21日 #

再读C++线程池

摘要: 最近仔细看了一下https://github.com/henkel/threadpool代码,总体感觉非常精巧,使用了boost库的bind function完成了线程池与业务端的完全解耦;所有的任务最终都会被封装成为function对象push进入队列。 这个库里面用了几个boost库里面的类,如recursive_mutex,reference_wrapper,thread等;有兴趣的可以研究一下。 首先来说threadpool的结构:![](http://images.cnitblog.com/blog/595935/201401/211620393409.jpg)之前在读... 阅读全文

posted @ 2014-01-21 16:20 jackfeng 阅读(325) 评论(0) 推荐(0) 编辑

2014年1月10日 #

x-forward-for详解

摘要: 转载:http://www.360doc.com/content/14/0110/17/15459414_344165975.shtml如今利用nginx做负载均衡的实例已经很多了,针对不同的应用场合,还有很多需要注意的地方,本文要说的就是在通过CDN 后到达nginx做负载均衡时请求头中的X-Forwarded-For项到底发生了什么变化。下图为简单的web架构图:![](http://images.cnitblog.com/blog/595935/201401/101736138483.png)先来看一下X-Forwarded-For的定义:X-Forwarded-For:简称XFF头,它 阅读全文

posted @ 2014-01-10 17:37 jackfeng 阅读(15107) 评论(0) 推荐(3) 编辑

2014年1月2日 #

C++线程池

摘要: 之前一直在找一个开源的C++线程池库,找了很久也没有找到一个好用的,后来项目需要,本想自己写一个,但是无意中在github上面找了一个采用boost库实现的threadpool,后来研究了一下源码,觉得非常好用。代码地址:https://github.com/henkel/threadpool1、代码风格:采用boost的风格,内部使用了大量的C++高级操作,包括了template,shared_ptr,traits;采用boost里面的bind,future的库函数实现多态。2、代码不到1000多行,实现很多功能,包括fifo,lifo,prifo等队列;3、支持wait的超时操作;4、.. 阅读全文

posted @ 2014-01-02 16:58 jackfeng 阅读(2241) 评论(0) 推荐(0) 编辑

STL 内存释放

摘要: C++ STL 中的map,vector等内存释放问题是一个很令开发者头痛的问题,关于stl内部的内存是自己内部实现的allocator,关于其内部的内存管理本文不做介绍,只是介绍一下STL内存释放的问题: 记得网上有人说采用Sawp函数可以完全清除STL分配的内存,下面使用一段代码来看看结果:首先测试vector:void TestVector() { sleep(10); cout test_vec; for (size_t i = 0; i tmp_vec; // 你觉得swap它会降低内存吗? test_vec.swap(tmp_vec); ... 阅读全文

posted @ 2014-01-02 08:32 jackfeng 阅读(3824) 评论(0) 推荐(0) 编辑

2013年12月31日 #

hudson slave搭建

摘要: Hudson Slave搭建使用Hudson搭建分布式的构建环境非常方便,客户端也不需要太多的操作,只要能执行java命令就行。hudson默认采用master方式进行安装,master作为分布式构建的主环境,客户端不需要安装hudson,采用jnlp方式与master建立连接。1. Hudson->系统管理->节点管理->新建节点->(填写节点名称)2. 在服务端Hudson添加新建节点的设置:1.of executors : 执行数,可配置成CPU个数2.Remote FS root : 客户端hudson的执行目录3.Labels : 标签,用于在Project中 阅读全文

posted @ 2013-12-31 18:48 jackfeng 阅读(236) 评论(0) 推荐(0) 编辑