September 1, 2010
浅谈Linux优化及安全配置的个人体会
"前言:\n很久没有写过文章了,最近收到不少朋友来信,提及了有关优化配置和一些新的安全问题,在此我想和大家浅显讨论一下这些问题,有什么不准确和有更好的方式,请给我来信共同讨论提高。\n在网上看到不少有关linux优化方面的好文章,在此我也不赘述这些文章了,我只想从我自己的体会来谈谈这方面的问题。\n作为一个系统管理员,我下面说的都是基于服务器应用的linux来谈的,由于个人电脑上使用linux也许不是像服务器上一样,优先追求安全和稳定,因此个人电脑使用的朋友只做个参考吧。\n本文提及的系统,如没有特别声明,均采用redhat公司的redhat linux系统。\n关于优化\n说起优化,其实最好的优化就是提升硬件的配置,例如提高cpu的运算能力,提高内存的容量,个人认为如果你考虑升级硬件的话,建议优先提高内存的容量,因为一般服务器应用,对内存的消耗使用要求是最高的。当然这都是题外话了。\n这里我们首要讨论的,是在同等硬件配置下(同一台服务器,不提升硬件的情况下)对你的系统进行优化。\n作为系统管理员,我认为,首先我们要明确一个观点:在服务器上作任何操作,升级和修改任何配置文件或软件,都必须首要考虑安全性, …"
September 1, 2010
float margin-left 浮动对象双倍距离
"出现问题是:使用 float: left; 后,在IE显示margin-left:1px;就变成2px的距离。 IE Bug 的解决方法: 加一个 display: inline; 就OK了\n#box1{ float: left; background: #F2F2F2; width: 300px; height: 200px; margin-left: 50px; } #box1{ float: left; background: #F2F2F2; width: 300px; height: 200px; margin-left: 50px; display: inline; } margin在IE6下被解释为双倍距离,出现了Margin与float一起用时,在IE6下,其Margin属性会被解释会双倍的距离,margin产生双倍距离其解决兼容问题的两种方法:\n1、给当前层增加display: inline;属性。\n2、取消浮动:Float。\n熟悉规则的人知道浮动元素自动设置为”block”元素,而不管他们之前是什么。这说明浮动元素上的{display: inline;}会被忽略,事 …"
September 1, 2010
开源软件keepalived实现分布式数据分发
"大家都看到过在支付宝架构图里面一个分布式数据分发中心(Gara系统),这个分布中心为了完成每天的数据抽取和向多个Oracle Rac集群和Greenplum集群分布数据的心脏,数据仓库系统是一切系统数据来源。其中功能是为了完成异构数据抽取和装载。\n为了使Gara实现高效性和线性扩展能力,现在alipay dw是用4台高性能PC Dell R900(4*4core,128GB memory)来实现,但是Gara原来开发的程序不能实现分布式,只能通过调度系统来控制,灵活性不够强。\n最近发现一个开源软件 Keepalived,能很好来实现Gara高效性和线性扩展能力,很多人用来 Keepalived网站的负载均衡,Keepalived还有一个重要的特性就是实现高可用性,就利用这个特性来实现Gara分布式管理\nKeepalived可以提供IP层的高可用性, 一旦某一台机器的网络出现问题, 另一台服务器会立即(几秒或者更少的时间)使用出故障的服务器的IP进行工作。\nkeepalived体系架构图:\nkeepalived体系架构很清晰,都模块化的,跟我们目前开发的调度系统架构非常相像,大家可以去仔 …"
September 1, 2010
分布式key/value存储系统比较
"先介绍一下绍一些流行的分布式key/value存贮系统,并做一些简单的比较。\n词汇与背景阅读:\nDistributed Hash Table (DHT) and algorithms such as Chord or Kadmelia\nAmazon’s Dynamo Paper, and this ReadWriteWeb article about Dynamo which explains why such a system is invaluable\nAmazon’s SimpleDB Service, and some commentary\nGoogle’s BigTable paper\nThe Paxos Algorithm – read this page in order to appreciate that knocking up a Paxos implementation isn’t something you’d want to do whilst hungover on a Saturday morning.\n现有比较流行的key/value存储系统:\n以下评论 …"
August 28, 2010
Windows 2003 关机时如何去掉讨厌的关机原因提示
"每次需要关闭系统时,Win2003系统总是“多此一举”,要你选择关机原因,一次两次还能忍受,可是时间长了,真是讨厌它,现在决定将它删除 掉:\n1.打开开始菜单中的运行对话框,输入组策略编辑命令“gpedit.msc”,打开组策略编辑窗口;\n2.在该窗口中,依次展开“计算机配置”、“管理模板” 、“系统”目录,在对应的右边子窗口中,双击“关闭事件跟踪程序”选项;\n3.在随后打开的设置界面中,将“已禁用”选项选中就可以了。"
August 28, 2010
三种LVS负载均衡模式
"调度器的实现技术中,IP负载均衡技术是效率最高的,IP虚拟服务器软件(IPVS)是在linux内核中实现的。\nLVS负载均衡模式—1.NAT模式\nNAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(原地址NAT)。如果把NAT的过程稍微变化,就可以成为负载均衡的一种方式。原理其实就是把从客户端发来的IP包的IP头目的地址在DR上换成其中一台REALSERVER的IP地址并发至此REALSERVER,而REALSERVER则在处理完成后把数据经过DR主机发回给客户端,DR在这个时候再把数据包的原IP地址改为DR接口上的IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过DR。\n**LVS负载均衡模式—2.IP隧道模式 ** 隧道模式则类似于VPN的方式,使用网络分层的原理,在从客户端发来的数据包的基础上,封装一个新的IP头标记(不完整的IP头,只有目的IP部)发给REALSERVER,REALSERVER收到后,先把DR发过来的数据包的头给解开,还原其数据包原样,处理后,直接返回给客户端,而不需要再经过DR。需要注意的是,由 …"
August 28, 2010
Nginx+keepalived负载均衡篇
"由于nginx的url hash功能可以很好的提升squid的性能,所以我把squid前端的负载均衡器更换为nginx,但是一台nginx就形成了单点,现在使用keepalived来解决这个问题,keepalived的故障转移时间很短,而且配置简单,这也是选择keepalived的一个主要原因,建议日PV值小的中小型企业web均可采用如下方案实行,下面直接上安装步骤:\n一、环境:\ncentos5.3、nginx-0.7.51、keepalived-1.1.19\n主nginx负载均衡器:192.168.0.154\n辅nginx负载均衡器:192.168.9.155\nvip:192.168.0.188\n二、安装keepalived\n#tar zxvf keepalived-1.1.19.tar.gz\n#cd keepalived-1.1.19\n#./configure –prefix=/usr/local/keepalived\n#make\n#make install\n#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/\n#cp …"
August 28, 2010
[教程]freebsd8.0下安装coreseek
"一**、安装coreseek**\nA、安装环境配置,为安装coreseek做准备\n#pkg_add -r autoconf262 automake110 libtool mysql50-client libxml2 expat\nB、下载整个安装包(内含mmseg,coreseek):\n#fetch http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.13.tar.gz\n#tar xzvf coreseek-3.2.13.tar.gz\n#cd coreseek-3.2.13\n======================================\nC 、 安装coreseek开发的mmseg,为coreseek提供中文分词功能\n#cd mmseg-3.2.13\n#./bootstrap\n#./configure –prefix=/usr/local/mmseg3\n#make\n#make install\n至此,mmseg已经安装完成,下面进入csft-3.2.13目录里进行安装coreseek …"
August 26, 2010
linux下php多线程的妙用
"开始用php写后台服务一段时间了.也是在这样的驱动下,不断的学习php语法,体验这一原来一直以为神秘且敬而远之的神奇语言的魅力.最初看php多线程的资料是为了提高程序的处理能力,充分发挥linux多任务的优势.不曾想多线程没用成反到是带来了一系列的意外收获.让之后的许多问题迎刃而解,不敢独享特一一道来. 本文所讲的东西是源自php的pcntl_fork函数.因为这个函数依赖操作系统fork的实现,所以本文所讲的东西只适用于linux/unix.ok,那么先看看这个函数的用法吧. php手册 上是这么说的:\n$pid = pcntl_fork();\nif ($pid == -1) {\ndie(‘could not fork’);\n} else if ($pid) {\n// we are the parent\npcntl_wait($status); //Protect against Zombie children\n} else {\n// we are the child\n}\n?\u0026gt;\n通过pcntl_fork创建一个子进程,如果返回值是-1的话,那么说明子进程创建失败.创建成功的进 …"
August 23, 2010
centos IP网络配置
"一、修改IP地址\n修改对应网卡的IP地址的配置文件\n[root@centos]# vi /etc/sysconfig/network-scripts/ifcfg-eth0\n修改以下内容\nDEVICE=eth0(描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0)\nBOOTPROTO=static(设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址)\nBROADCAST=192.168.0.255(对应的子网广播地址)\nHWADDR=00:07:E9:05:E8:B4 (对应的网卡物理地址)\nIPADDR=192.168.1.2(如果设置网卡获得ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址)\nIPV6INIT=no\nIPV6_AUTOCONF=no\nNETMASK=255.255.255.0(网卡对应的网络掩码)\nNETWORK=192.168.1.0(网卡对应的网络地址)\nONBOOT=yes(系统启动时是否设置此网络接口,设置为yes …"