一行命令 Ping 网段所有 IP

按住 win键+r键 跳出cmd窗口,将下面的代码粘贴到该窗口,
@for /l %i in (1,1,255) do @ping -n 1 -w 40 192.168.1.%i & if errorlevel 1 (echo 192.168.1.%i>>na.txt) else (echo 192.168.1.%i>>act.txt)
回车,将自动探测192.168.1.X网段的ip响应情况. 现在是假设你的电脑属于192.168.1.X网段某一部.
存活的保存在 act.txt,不通的在 na.txt;
根据实际改改 -n 1 -w 40 的参数,以达到精准。
还有个高级应用:
@for /l %i in (1,1,65535) do @ping -n 1 -w 40 192.168.%i & if errorlevel 1 (echo 192.168.%i>>na.txt) else (echo 192.168.%i>>act.txt)

squid和varnish的小结

上周初步接触linux下的这2个反向缓存软件,都实验了一下,貌似squid还是比较顺利的,varnish则碰到了一些问题

从varnish的文档看,性能比squid强很多,而且不是一点点,下面国外某在线媒体的12台squid换成3台varnish前后访问响应延时比较,据说有人也测试过的确如此,

但我就不那么顺利了。 Continue reading

lvs-可伸缩Web和媒体服务

基于LVS可伸缩Web和媒体服务的体系结构如图2.2所示:在前端是一个负载调度器,一般采用IP负载均衡技术来获得整个系统的高吞吐率;在第二层是服务器池,Web服务和媒体服务分别运行在每个结点上;第三层是数据存储,通过分布式文件系统使得每个服务器结点共享相同的数据。集群中结点间是通过高速网络相连的。
2.2:基于LVS的可伸缩Web和媒体集群
分布式文件系统提供统一的存储空间,这使得系统的维护工作比较方便,且系统运行比较高效。当所有服务器结点超载时,管理员可以很快地加入新的结点来处理请求,而无需将Web文档等复制到结点的本地硬盘上。Webmaster可以看到统一的文档存储空间,维护和更新页面比较方便,对分布式文件系统中页面的修改对所有的服务器都有效。大的媒体文件(如视频文件)分段存储在分布式文件系统的多个结点上,可以提高文件系统的性能和文件服务器间的负载均衡。 Continue reading

LVS集群的通用结构

LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。

图2.1:LVS集群的体系结构

为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。LVS集群的体系结构如图2.1所示,它有三个主要组成部分:

  • 负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址上的。它可以是用IP负载均衡技术的负载调度器,也可以是基于内容请求分发的负载调度器,还可以是两者的结合。
  • 服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
  • 后端存储(backend storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。 Continue reading

Keepalived服务器状态监测

keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

Layer3,4&5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:

Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器

发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,…

相关keepalived实现的教程:

基于LVS的集群配置:http://blog.haohtml.com/archives/4502

利用LVS+Keepalived 实现高性能高可用负载均衡服务器:http://blog.haohtml.com/archives/5365

CentOS5.5环境下布署LVS+keepalived :http://blog.haohtml.com/archives/6348

在FreeBSD上安装Squid

Squid 2.5下载 & 安装
squid的2.5最新版本是squid-2.5.STABLE7,先下载安装包,再安装:
#cd /tmp
#mkdir squidinstall
#cd squidinstall
#fetch http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE7.tar.gz
#tar xzvf squid-2.5.STABLE7.tar.gz
#cd squid-2.5.STABLE7
#./configure –prefix=/usr/local/squid
#make
#make install
看到类似于下图的提示,并且没有出现 Error Code :1 之类的错误提示,证明Squid已经安装完成了!
*********************************
/usr/local/squid/sbin/squid -z
****************************
/usr/local/squid/sbin/squid
************************ Continue reading

mysql各种HA方案

mysql的单点一直是一个让人很烦恼的事情,特别是master的单点。

现在外面的解决方案主要如下: 双master方案,heartbert(HA)+rhcs(分布式文件系统),heartbert(HA)+DRBD.

双master存在的问题是master有2个IP,这样意为着前端需要指向2个的masterIP,同时bin-log也是双向同步的,会不会比单向同步的量更多呢?

第二种方案是挺不错的,但是必须要分布式文件系统,要是实在不行就可以用NFS来代替,但是这样存在的问题就是数据文件是单点,所以必须使用分布式文件系统。

第三种是关键是DRBD,这个是在网络层做RAID1,在A机器上收到数据后DRBD会写到本地硬盘上,同时通过网络传输到另外一台机器上。这样保证了2台机器的一致。特别是DRBD传输的时候有多种协议可以选择,但是一般看到网上大家都是使用协议C(C表示收到远程主机的写入确认后,视为写入完成)
DRBD的架构如下: Continue reading

[教程]freebsd下SVN服务器配置

注意:

这里主要介绍使用svnserver服务器这种方式,在安装的时候使用的是ipv4,所以最好如果没有必要的话,尽量将ipv6的一些选项给取消.

安装svn服务器软件.由于要通过Web访问SVN所以要加载mod_dav模块,所以在安装apche的时候要添加一些参数:

#cd /usr/ports/devel/subversion
#make WITH_MOD_DAV_SVN=yes WITHOUT_BDB=yes install clean
#rehash

下边介绍两种使用方式:
第一种方式:使用svnserve服务器,自己的协议和客户端,在freebsd我在/usr/local/www/apache22/data下用FTP上传了一个blog目录

Continue reading

$HTTP_RAW_POST_DATA 和 $_POST的区别

这是手册里写的

总是产生变量包含有原始的 POST 数据。否则,此变量仅在碰到未识别 MIME 类型的数据时产生。不过,访问原始 POST 数据的更好方法是 php://input。$HTTP_RAW_POST_DATA 对于 enctype=”multipart/form-data” 表单数据不可用。

问题:    $HTTP_RAW_POST_DATA  == $_POST  吗?

照手册所写 ,答案应该就为否。
假如不一样的话,他们的区别是什么呢?

我知道答案了,如下:

The RAW / uninterpreted HTTP POst information can be accessed with:
$GLOBALS[‘HTTP_RAW_POST_DATA’]

This is useful in cases where the post Content-Type is not something PHP understands (such as text/xml).

也就是说,基本上$GLOBALS[‘HTTP_RAW_POST_DATA’] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS[‘HTTP_RAW_POST_DATA’]来接收,比如 text/xml 或者 soap 等等。

PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型。

PHP输入流php://input

在使用xml-rpc的时候,server端获取client数据,主要是通过php输入流input,而不是$_POST数组。所以,这里主要探讨php输入流php://input

对于php://input介绍,PHP官方手册文档有一段话对它进行了很明确地概述。

php://input allows you to read raw POST data. It is a less memory intensive alternative to $HTTP_RAW_POST_DATA and does not need any special php.ini directives. php://input is not available with enctype=”multipart/form-data”.
翻译过来,是这样:
“php://input可以读取没有处理过的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。php://input不能用于enctype=multipart/form-data” Continue reading