摘要: 1、前言 最近在看《云数据中心网络技术》,学习了企业数据中心网络建设过程,看到有ToR和EoR两种布线方式,之前没有接触过,今天总结一下。 2、布线方式 ToR:(Top of Rack)接入方式就是在服务器机柜的最上面安装接入交换机。 EoR:(End of Row)接入交换机集中安装在一列机柜端 阅读全文
posted @ 2018-05-06 17:32 Rabbit_Dale 阅读(44519) 评论(0) 推荐(3) 编辑
摘要: 1、前言 云计算在中国发展越来越快,企业逐步开始将业务迁移到公有云中,方便运维,节省成本。公有云最复杂的地方是网络,客户对网络的需求千奇百怪,造成网络环境极其复杂,稍有不慎,就会出现网络连通性问题。因此大部分云计算厂商机房网络类型的运营商接入均为 BGP 多线路,保证线路质量。公有云中网络安全也是非 阅读全文
posted @ 2018-01-01 10:56 Rabbit_Dale 阅读(8732) 评论(2) 推荐(0) 编辑
摘要: 1、前言 最近因为工作需要判断一个域名是否备案,实际提取的域名就是HTTP报文中的Host的内容,而判断一个域名是否是根据根域名进行的。例如访问www.qq.com,提取Host的内容为www.qq.com,而判断这个域名是否备案,是通过qq.com进行,因此需要从Host内容中提取出根域名。 遇到 阅读全文
posted @ 2017-09-24 10:49 Rabbit_Dale 阅读(2184) 评论(0) 推荐(1) 编辑
摘要: 1、前言 今天需要实现一个Pyhton的http服务,与Web的JS进行交换。 2、实例代码 支持HEAD、GET、POST方法,将参数转换为JSON格式,返回结果以JSON字符串返回。 使用NodeJS默认测试如下: 阅读全文
posted @ 2017-06-27 17:24 Rabbit_Dale 阅读(8032) 评论(0) 推荐(0) 编辑
摘要: 1、前言 今天在处理一个客户问题,遇到Nginx access log中出现大量的499状态码。实际场景是:客户的域名通过cname解析到我们的Nginx反向代理集群上来,客户的Web服务是由一个负载均衡提供外网IP进行访问,负载均衡后面挂了多个内网web站点业务服务器。出现的访问日志如下所示: 2 阅读全文
posted @ 2017-06-25 23:28 Rabbit_Dale 阅读(154251) 评论(5) 推荐(0) 编辑
摘要: 1、前言 昨天总结了一下Linux下网络编程“惊群”现象,给出Nginx处理惊群的方法,使用互斥锁。为例发挥多核的优势,目前常见的网络编程模型就是多进程或多线程,根据accpet的位置,分为如下场景: (1)单进程或线程创建socket,并进行listen和accept,接收到连接后创建进程和线程处 阅读全文
posted @ 2017-06-25 12:46 Rabbit_Dale 阅读(26711) 评论(1) 推荐(7) 编辑
摘要: 1、前言 网络编程分为客户端和服务端,服务器通常分为迭代服务器和并发服务器。并发服务器可以根据多进程或多线程进行细分,给每个连接创建一个独立的进程或线程,或者预先分配好多个进程或线程等待连接的请求。今天探讨三种设计范式 (1)迭代服务器 (2)并发服务器,为每个客户请求创建一个进程或线程 (3)预先 阅读全文
posted @ 2017-06-25 00:34 Rabbit_Dale 阅读(2104) 评论(1) 推荐(2) 编辑
摘要: 1、前言 我从事Linux系统下网络开发将近4年了,经常还是遇到一些问题,只是知其然而不知其所以然,有时候和其他人交流,搞得非常尴尬。如今计算机都是多核了,网络编程框架也逐步丰富多了,我所知道的有多进程、多线程、异步事件驱动常用的三种模型。最经典的模型就是Nginx中所用的Master-Worker 阅读全文
posted @ 2017-06-24 12:18 Rabbit_Dale 阅读(21967) 评论(21) 推荐(16) 编辑
摘要: 1、前言 最近在网上看到一道C语言题目,用C语言实现一个函数,给定一个int类型的整数,函数输出逆序的整数,例如输入123,则输出字符串"321",,输入-123,则输出字符串"-321"。题目要求,不使用标准库,不得分配内存。当时觉得蛮简单的,这不就是类似字符串逆转嘛,自己尝试做了一下,测试发现, 阅读全文
posted @ 2017-06-17 12:01 Rabbit_Dale 阅读(3148) 评论(5) 推荐(2) 编辑
摘要: 1、前言 最近工作需要测试nginx反向代理的性能,于是找了一些http测试工具,例如经典的Apache的ab、siege、wrk。wrk使用多线程事件驱动方式,支持lua脚本扩展。关于wrk介绍可以参考:https://github.com/wg/wrk。测试http的性能,主要关注的是QPS(每 阅读全文
posted @ 2017-06-03 18:02 Rabbit_Dale 阅读(2090) 评论(0) 推荐(0) 编辑
摘要: 1、前言 最近在做关于openresty方面的工作,涉及到lua脚本语言,经常需要打日志查看内容。普通的print函数遇到nil或table时,非常无力。而项目中的代码经常遇到参数为nil或table的情形。所以,如果想解决上面的问题,将整个table类型数据的结构输出到控制台,那就使用循环+递归的 阅读全文
posted @ 2017-03-22 22:29 Rabbit_Dale 阅读(34639) 评论(2) 推荐(0) 编辑
摘要: 1、前言 最近在写一个测试工具,要求快速的高效率的扫描出各个服务器开放了哪些端口。当时想了一下,ping只能检测ip,判断服务器的网络是连通的,而不能判断是否开放了端口。我们知道端口属于网络的传输层,因此需要用ip和端口来探测,这个时候就可以用connect来探测一下,针对TCP协议,connect 阅读全文
posted @ 2017-02-18 17:19 Rabbit_Dale 阅读(19770) 评论(7) 推荐(3) 编辑
摘要: ############################################################# # Generic Makefile for C/C++ Program # # License: GPL (General Public License) # Author: whyglinux # Date: 2006/03/04 (version 0.1) ... 阅读全文
posted @ 2017-01-21 00:49 Rabbit_Dale 阅读(1460) 评论(0) 推荐(2) 编辑
摘要: 一、TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式 TCP保证数据正确性,UDP可能丢包 TCP保证数据顺序,UDP不保证 部分满足以下几点要求时,应该采用UDP 面向数据报方式 网络数据大多为短消息 拥有大量Client 阅读全文
posted @ 2016-12-22 13:26 Rabbit_Dale 阅读(6431) 评论(0) 推荐(1) 编辑
摘要: selenium是进行web自动化测试的一个工具,支持C,C++,Python,Java等语言,他能够实现模拟手工操作浏览器,进行自动化,通过webdriver驱动浏览器操作,我使用的是chrome浏览器,下载chrome webdriver 放到python的安装目录。 参考连接: https:/ 阅读全文
posted @ 2016-12-18 18:26 Rabbit_Dale 阅读(2840) 评论(0) 推荐(0) 编辑
摘要: 1、前言 最近在项目中引入了keyless,需要测试一下对web的性能影响。常见的web测试工具有ab、siege、http_load等。我用的是Apache的ab测试工具。在测试web性能之前,首先需要考虑要测试哪些参数,通过什么来衡量web的性能。今天总结一下,方便日后参考。 2、web性能参数 阅读全文
posted @ 2016-12-16 08:55 Rabbit_Dale 阅读(1740) 评论(2) 推荐(0) 编辑
摘要: 1、前言 记得刚开始工作的时,老大将我安排到数据面组,当时第一次听说”数据面“这个概念,感觉挺新鲜的。误打误撞就开始搞了,刚开始接触的时候,由于不懂其中的原理,觉得很神奇,因为报文的转发是在应用层,通过一个进程进行转发。而传统的报文转发是基于内核的,要想控制报文,需要写驱动程序。后面接触了一段时间, 阅读全文
posted @ 2016-12-10 17:44 Rabbit_Dale 阅读(34220) 评论(1) 推荐(2) 编辑
摘要: 1、前言 今天在搭建Go语言环境,从https://golang.org/dl/上下载一个Go语言环境。环境变量配置刚开始如下配置: GOROOT=/home/go/bin go执行文件目录 GOPATH=/home/go go的安装目录 写个测试程序提示如下错误: 正确的配置如下: GOROOT配 阅读全文
posted @ 2016-11-30 16:08 Rabbit_Dale 阅读(3247) 评论(0) 推荐(0) 编辑
摘要: 1、前言 最近在项目中用nginx做反向代理,需要动态生成nginx的配置。大概流程是用户在页面上新增域名、http或https协议以及端口信息,后台会根据域名自动生成一个nginx的server配置,在nginx.conf配置文件中使用include将所有的server配置加载进来。遇到一个问题就 阅读全文
posted @ 2016-11-29 00:19 Rabbit_Dale 阅读(22676) 评论(5) 推荐(1) 编辑
摘要: 1、前言 最近在看大型网站架构的书籍,书中介绍了大型网站支持扩展性。大概意思就是当服务器出现性能的不足的时,如何调整服务器,用来满足更多的请求。之前对这个扩展概念不是很清楚,仔细看了一下扩展分为水平扩展和垂直扩展两种。今天总结一下服务扩展性的知识点。主要内容为(1)服务器扩展性是什么?为什么需要扩展 阅读全文
posted @ 2016-11-26 00:12 Rabbit_Dale 阅读(1244) 评论(2) 推荐(1) 编辑