Lighttpd配置

了解了web服务器的基本架构之后,再配置web服务器都是很类似的了;

1. 配置基于名称的虚拟主机
看个实例吧:

$HTTP["host"] == "blog.cn" {
server.name = "blog.cn"
server.document-root = "d:/www/MyBlog"
}

可以简单到这等地步的,里面没有配置的选项将都和外面的一样

2. 配置redirect和rewrite

注意一定要打开对应的这两个模块:

"mod_redirect",
"mod_rewrite",

看个简单例子:
如果我在跟目录输入/st 就像重定向到:http://phpor.net/server-status ,可以这么写:
url.redirect = ( "^/st$" => "http://phpor.net/server-status" )

如果我在跟目录输入/s 就像rewrite到:/server-status ,可以这么写:
url.rewrite = ( "^/s$" => "/server-status" )

看起来这两种写法很相似,不过一定要注意:
redirect是客户端重定向,可以重定向到另外一个网站,浏览器需要再发一个请求,所以redirect时目的地址可以是完整的uri

rewrite是服务器端重定向,不能重定向到另外一个网站,浏览器不用重新发出请求,所以rewrite 时不能目的地址中含有域名

当然还有更多的使用正则来redirect和rewrite的用法,自己看看手册吧!

3. 绑定服务到指定ip和指定端口

因为一个机器可能有多块网卡,就算只有一块网卡,还有一个环回地址呢,所以只对指定的网卡提供服务就需要这种配置了,目前我用web仅仅是本机管理自己的资源用,很多信息是秘密的,不能公开的,但是我又不想每次打开管理系统就需要输入密码,所以我就把web绑定到127.0.0.1,不允许对外提供服务,这样就确保绝对安全了,这样来写:

server.bind = "127.0.0.1"
server.port = 81
# 绑定到指定端口

相关文章:http://lighttpd.banma.com/bbs/b_17.html

Linux 下查看网卡硬件信息

使用命令:ethtool
例:

[root@ljj ~]# ethtool -i eth0
driver: pcnet32
version: 1.31
firmware-version:
bus-info: 0000:00:11.0
[root@ljj ~]# ethtool -k eth0
Offload parameters for eth0:
Cannot get device rx csum settings: Operation not supported
rx-checksumming: off
tx-checksumming: off
scatter-gather: off
tcp segmentation offload: off
[root@ljj ~]# ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX:             511
RX Mini:        0
RX Jumbo:       0
TX:             511
Current hardware settings:
RX:             31
RX Mini:        0
RX Jumbo:       0
TX:             15

[root@ljj ~]#

服务器相关知识:U的概念

机箱外观参数中的 1u.2u.3u.4u~8u 代表什么意思呢?

U是一种表示服务器外部尺寸的单位,是unit的缩略语,详细的尺寸由作为业界团体的美国电子工业协会(EIA)所决定。

之所以要规定服务器的尺寸,是为了使服务器保持适当的尺寸以便放在铁质或铝质的机架上。机架上有固定服务器的螺孔,以便它能与服务器的螺孔对上号,再用螺丝加以固定好,以方便安装每一部服务器所需要的空间。

规定的尺寸是服务器的宽(48.26cm=19英寸)与高(4.445cm的倍数)。由于宽为19英寸,所以有时也将满足这一规定的机架称为“19英寸机架”。厚度以4.445cm为基本单位。1U就是4.445cm,2U则是1U的2倍为8.89cm。

所谓“1U的PC服务器”,就是外形满足EIA规格、厚度为4.445cm的产品。设计为能放置到19英寸机柜的产品一般被称为机架服务器。

1U服务器就是一种高可用高密度的低成本服务器平台,是专门为特殊应用行业和高密度计算机环境设计的。它们可以通过本地硬盘启动自己的操作系统,如Windows NT/2000/2003、Linux、Solaris等等,类似于一个个独立的服务器。在这种模式下,每一个主板运行自己的系统,服务于指定的不同用户群,相互之间没有关联。不过我们还是可以用系统软件将这些主板集合成一个服务器集群。

目前我国的1U式服务器发展还处于起步阶段,国内的用户数量还不是很多,当前多以数据中心和科研机构应用的比较广泛。但是由于符合未来计算模式的发展方向,并且在我国网络日益普及的今天,网络技术的应用也越发频繁。针对个人的数据备份、网络游戏平台和中小型企业网站的实施与应用,都将可能采用这种服务器产品。

服务器硬件配置入门级参考

这是一篇关于WEB服务器选购的文章,希望对你能有点用处

说到服务器,目前最热门的应用无非就是做Web支持和网游平台,国内大部分采购服务器作为网游应用的都是私服,属于侵犯知识产权的行为,虽然短期内容易盈 利,但是是违法的,国内已经有架设私服被判刑的先例,所以不便多做讨论,今天想就我个人这几年架设WEB服务器的经验跟大家谈谈WEB服务器和服务器硬件 方面的搭配问题。
很多中小型企业的技术人员或者打算以网站、盈利的个人团体组织都经常提出这么一个疑问:究竟什么样的配置可以支持多大的流量?

其实这个问题不可能有准确答案,因为每个网站使用的Web系统都不一样,有些喜欢用IIS+ASP,有些则是用Apache+PHP,这在脚本的执行 效率上本身就存在很大的差异,另外,网页系统编写的复杂程度和优化程度也极大的影响着服务器能够承载的访问人数,大部分的新闻资讯、下载类网站都已经使用 了静态页面来减少Web系统对服务器处理能力的依赖,但是仍然有不少例如论坛、商城一类的系统需要大量动态代码的支持,所以笼统的去谈论一个服务器能够支 持多少访问量是没有实际意义的,还是需要具体的去分析:

首先说说CPU,我们知道,大部分的Web脚本为了安全起见都是在服务器端执行的(Javascript例外),而这些脚本就相当于我们用VB或者C ++编程时使用的高级语言,不同的是我们用VB这些软件编程,编辑软件最后会把我们的代码编译成执行效率更高的可执行软件,而我们的Web脚本在保存时是 不会被编译的,都是在用户请求访问这个页面时才被相关的编译器进行编译操作,这样一来,结果就是一个页面被访问N次,就得被编译N次,这样对系统资源的占 用是非常可怕的,虽然IIS已经对.NET进行优化,会将被访问过的页面编译后缓存起来,下次其他用户进行相同请求时不再需要对这个页面进行编译,但网页 脚本的复杂性和庞大性最终还是大量的占用系统资源尤其是处理器资源,这就是为什么热门论坛同时多人在线服务器会变得很慢。其实现在的服务器配置,大多是 P4 3.2G或者双路Xeon 3.0G,这样的配置对于动态论坛这种极度消耗资源的系统仍然没有足够的支持能力,根据我的经验,一个服务器上如果是纯粹一个动态论坛而没有其他应用,采 用P4 的处理器大概也就同时支持200-300人在线,如果是Web系统效率较高,脚本优化得好,还可以再多100~200人,如果是双路Xeon,千人在线也 差不多是极限了。所以,到目前位置,如果想做访问量、想做人气,选用性能比较强劲的CPU还是有足够理由的,个人比较推崇的还是采用Xeon 系统,P4 毕竟是入门级的配置,虽然双核 P4D 性能已经比以前大幅提升,但在多任务处理中,双路 Xeon 的表现还是遥遥领先,而且对于多客户访问的支持也更加稳定。

当然,有人可能会问:如果是静态页面为主的站点,是不是对处理器的要求就比较低了?答案是肯定的。静态页面不需要经过编译,基本就看网络带宽和网卡, 如果是图片多的网站,硬盘最好也换成SCSI,高转速高缓存的SCSI硬盘对于多而小的文件读取更有优势,而且稳定性更好,寿命也更长。

接下来说说内存,不管是静态页面的网址还是动态页面的网站,最好都尽量使用大容量内存,尤其是现在的服务器,内存的运行速度已经不是什么重要问题, DDR 333、DDR 400或者DDR2 其实区别都不大,最重要的只有两点:内存的容量和纠错(如ECC)。由于服务器有大量的数据需要临时缓存到内存里,所以访问量大的时候内存的占用也是较大 的,而当内存不够用的时候,虚拟内存的工作压力就非常大,其实就是磁盘工作压力会很大,而系统程序跟数据缓存操作不断的争抢内存资源时,当机的几率就高了 很多,如果你不希望你的服务器经常重启,配置大容量内存是非常必要的,除非是一天千位数IP的那种小型网站,不然还是建议大家使用 1GB 以上内存,即使有时候内存的使用率不会想我们想象的那么高,但是使用大内存对于降低虚拟内存的使用和减少重启次数都是有很大帮助的。而内存的纠错其实在服 务器上是非常必要的,首先很多服务器主板本身就要求搭配ECC REG内存,普通内存根本开不了机,另外,由于内存也是高速设备而且数据刷新频率非常高,所以加入纠错芯片的ECC内存可以有效的帮助系统减少由于数据信 息出错而产生的严重后果,另外,由于内存的校验操作都是内存上的独立智检芯片完成,所以不会占用CPU资源,一些用户担心内存纠错会造成系统性能的下降其 实是一种心理作用。

至于服务器的硬盘,现在大部分的入门级机型都使用性能出色价格低廉的SATA硬盘,其实这也无可厚非,只不过如果严格比较SATA跟SCSI的区别, 在稳定性方面和使用寿命方面SCSI还是有较大优势。我们知道,现在凭借较大的单碟容量,SATA硬盘的性能已经可以跟SCSI媲美,但是服务器这种分分 钟要接受用户访问,不断读取、改写磁盘数据的应用环境还是给硬盘带来很大的工作压力,尤其是多人访问以及长时间下载的时候,这样的高强度读写量绝对是桌面 级的硬盘无法承受的,哪怕是SATA硬盘,也只是在接口上做了调整,磁盘体和磁头的发热仍然会造成致命伤,而SCSI硬盘设计的时候就考虑到它的工作环 境,所以不会一味扩充容量,而是以安全为先决条件,这就是为什么很多二手市场淘汰下来的SCSI硬盘都仍然可以再用个几年。所以,做下载的站点如果资金允 许,还是应该尽量选用SCSI硬盘,如果用SATA,也应该定期检查服务器磁盘是否报错以便及时处理减少损失,这绝不是危言耸听,我做过的几个带有资源下 载的站点,SATA硬盘基本都是1年左右就开始报错了。

再说说主板吧,一些初级用户觉得用家用主板可以很好的节省成本,其实家用主板跟服务器主板根本就是两回事,为什么“泰安”和“超微”的主板会那么贵? 并不是没有道理的:首先是稳定。做服务器的,如果不稳定,一切性能都是空谈。服务器主板的内部总线在设计上要优于家用板,总线带宽够大,能够同时传输的数 据才多;另外,服务器主板的用料也非常严格,电容、电阻偷工减料的行为在服务器主板上是不能出现的,还有就是设计问题了,有能力做服务器主板的厂家,设计 产品的功力自然要高出一筹,电路设计的合理和优化也是影响主板稳定性的一个因素。最明显的一点:在访问量大的时候,如果是普通主板,不是卡的非常厉害就是 立刻罢工,而服务器主板则可以比较平稳的处理这些任务。另外,服务器主板上都会集成一张ATI的入门级显卡,一般是8M显存,显存也是直接集成主板上,为 什么这样?因为对服务器来说,显卡是个负担,只有在安装调试的时候才用到,其他时候服务器扔在机柜里面都是不接显示器的,全部通过远程管理,服务器最好没 有显卡,因为多一个显卡就多一个负担,需要CPU建立联系处理数据,而且服务器不能集成太强大的显卡,因为性能好的显卡还会发热、耗电,所以专业的服务器 主板都是内建一张ATI入门级显卡。

最后说说网卡。既然是服务器,肯定都是要接入网络来工作,而服务器访问量一般都很大,这时候专业网卡跟普通网卡的区别就非常明显!例如我们常用的30 元一块的普通10/100M网卡,或者是大多数主板集成的网卡,当然现在也有不少千兆的网卡卖到这个价或者集成在主板上,但是,这些都是个人上网使用的, 用了这样的网卡,服务器根本顶不住几百个人在线,因为网卡的线程到了极限,完全依赖CPU的处理,同时这些网卡用料比较省,寿命也不长,像服务器这样长时 间工作,这种网卡是最先挂掉的,我以前就见过有人在服务器上使用这种网卡最后网卡烧掉的。另外也有一些好一点的网卡,价格在60-180之间,其实这些也 不行,因为线程不存在瓶颈的时候吞吐量已经到了极限,大家不要简单的把吞吐量看成是数据流量,而是数据零碎的处理速度,举例来说,一个大力士一次搬动 100KG的东西,你搬10KG的,但是你速度快,你能搬的速度比他快10倍,那你说是你比较效率高。其实错了,因为你搬起和放下比他多9次,而且每次你 都用脑子去记录,他可以完全不动脑子,而脑子就是CPU。服务器必须使用专业网卡,例如3com、intel的,这些网卡单独出售价格都在几百到几千元, 不过服务器主板上一般都会集成有,这类网卡才是最适用的,因为基本不依赖CPU,能直接和内存沟通数据,有自己的很大的缓存区,甚至有的能直接分离垃圾数 据请求。我们个人平时使用,其实任何网卡都是一样,不过拿到服务器上,好的网卡和差的网卡,立刻分出区别。

说了这些,其实还是希望大家对服务器各个配件有一些了解,特别是现在很多人选择组装的方式构建服务器,就更应该用稳定和适用去衡量产品,而不要一味降低成本,结果弄出一台服务器拿到机房经常死机,后期维护起来让自己头疼。

Linux操作系统如何将应用程序添加到菜单

 

现在想把Ulipad添加到系统的“应用程序”菜单里,方法如下:

 

sudo gedit /usr/share/applications/Ulipad.desktop

 

然后在里面添加如下内容:

 

[Desktop Entry]

 

Name=Ulipad

 

Comment=a Python IDE

 

Exec=/home/zhao/ulipad/UliPad.py

 

Icon=/home/zhao/ulipad/Ulipad.png

 

Terminal=false

 

Type=Application

 

Categories=Application;Development;

 

保存后,Ulipad就会出现在:应用程序->编程菜单下面。

LDAP 的Windows安装

Windows下安装使用openldap
openldap 比起其他商业目录服务器(比如 IBM Directory Server),特别的轻巧,十分适合于本地开发测试用,在产品环境中的表现也很优秀。

openldap 软件在它的官方网站 http://www.openldap.org, 不过下载过来是源代码,并没有包含 win32 下的 Makefile 文件,只提供了在 Unix/Linux 下编译用的 Makefile。所以相应的在网上介绍在 windows 下安装使用 openldap 的资料比较少,而在 Unix/Linux 下应用文档却很丰富。

本文实践了在 Windows 下安装配 openldap,并添加一个条目,LdapBrowser 浏览,及 Java 程序连接 openldap 的全过程。

1. 下载安装 openldap for windows,当前版本2.2.29
    下载地址:http://download.bergmans.us/openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe
    相关链接:http://lucas.bergmans.us/hacks/openldap/
   安装很简单,一路 next 即可,假设我们安装在 c:\openldap

2. 配置 openldap,编辑 sldap.conf 文件
   1) 打开 c:\openldap\sldap.conf,找到
    include  C:/openldap/etc/schema/core.schema,在它后面添加
    include  C:/openldap/etc/schema/cosine.schema
    include  C:/openldap/etc/schema/inetorgperson.schema

    接下来的例子只需要用到以上三个 schema,当然,如果你觉得需要的话,你可以把其他的 schema 全部添加进来
    include  C:/openldap/etc/schema/corba.schema
    include  C:/openldap/etc/schema/dyngroup.schema
    include  C:/openldap/etc/schema/java.schema
    include  C:/openldap/etc/schema/misc.schema
    include  C:/openldap/etc/schema/nis.schema
    include  C:/openldap/etc/schema/openldap.schema

   2) 还是在 sldap.conf 文件中,找到
    suffix  "dc=my-domain,dc=com"
    rootdn  "cn=Manager,dc=my-domain,dc=com"
    把这两行改为
    suffix "o=tcl,c=cn"  
    rootdn "cn=Manager,o=tcl,c=cn"

    suffix 就是看自己如何定义了,后面步骤的 ldif 文件就必须与它定义了。还要注意到这个配置文件中有一个 rootpw  secret,这个 secret 是 cn=Manager 的密码,以后会用到,不过这里是明文密码,你可以用命令: slappasswd -h {MD5} -s secret 算出加密的密码 {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ== 取代配置中的 secret。

3. 启动 openldap
    CMD 进入到 c:\openldap 下,运行命令 sldapd -d 1
    用可以看到控制台下打印一片信息,openldap 默认是用的 Berkeley DB 数据库存储目录数据的。

4. 建立条目,编辑导入 ldif 文件
   1) 新建一个 ldif(LDAP Data Interchanged Format) 文件(纯文本格式),例如 test.ldif,文件内容如下:
   
dn: o=tcl,c=cn
objectClass: dcObject
objectClass: organization
o: tcl
dc: com

dn: uid=Unmi, o=tcl,c=cn
uid: Unmi
objectClass: inetOrgPerson
mail: fantasia@sina.com
userPassword:: MTIzNDU2
labeledURI: http://unmi.blogcn.com
sn: Qiu
cn: 隔叶黄莺

   2) 执行命令:ldapadd -x -D "cn=manager,o=tcl,c=cn" -w secret -f test.ldif
    导入组织信息和一个用户 uid=Unmi

5. LdapBrowser 浏览
下载地址:http://www.blogjava.net/Files/Unmi/LdapBrowser282.rar     注:需要安装jre

Linux下单网卡绑定多IP与多网卡共用单IP

在Linux下有时候需要给一个网卡绑定多个IP,本文介绍在Redhat系列(redhat,Fedora Core,Centos)中的实现方法和一种在Gentoo等其他Linux中普遍适用的方法。

  1、单网卡绑定多IP在Redhat系列中的实现方法

  假设需要绑定多IP的网卡是eth0,请在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:0的文件,

  内容样例为:

DEVICE=”eth0:0″
IPADDR=”192.168.0.2″
BROADCAST=”172.168.0.255″
NETMASK=”255.255.255.0″
ONBOOT=”yes”

  其中的DEVICE为设备的名称,IPADDR为此设备的IP地址,BROADCAST是广播地址,NETMASK为子网掩码,ONBOOT 表示在系统启动时自动启动。

  假如需要再绑定多一个IP地址,只需要把文件名和文件内的DEVICE中的eth0:x加一即可。

  LINUX最多可以支持255个IP别名

  2、普遍适用的单网卡绑定多IP实现方法

  ifconfig eth0:1 192.168.0.3 broadcast 192.168.0.255 netmask 255.255.255.0

  可以把上述命令加在启动自运行文件里面,在Gentoo下是/etc/conf.d/local.start,而某些版本的Linux是/etc/rc.d/rc.local。

  3、多网卡共用单IP的实现方法

  使用多块网卡虚拟成为一块网卡,具有相同的IP地址。这项技术其实在sun和cisco中已经存在,分别称为Trunking和 etherchannel技术,在linux中,这种技术称为bonding。因为bonding在内核2.4.x中已经包含了,只需要在编译的时候把网络设备选项中的 Bonding driver support选中就可以了。

  然后,重新编译核心,重新起动计算机,执行如下命令:
ismod bonding
ifconfig eth0 down
ifconfig eth1 down
ifconfig bond0 ipaddress
ifenslave bond0 eth0
ifenslave bond0 eth1

现在两块网卡已经象一块一样工作了,这样可以提高集群节点间的数据传输。

  你最好把这几句写成一个脚本,再由/etc/rc.d/rc.local或者/etc/conf.d/local.start调用,以便一开机就生效。

  bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两三块100兆网卡作 bonding,可大大提高服务器到交换机之间的带宽。但是需要在交换机上设置连接bonding 网卡的两个口子映射为同一个虚拟接口。

基本的文件系统体系结构 ext2 ext3 ntfs fat

 

原文地址:http://www.ibm.com/developerworks/cn/linux/l-linux-filesystem/index.html?S_TACT=105AGX52&S_CMP=techcsdn

各种文件系统的限制:

Ext2

Ext2 文件系统是Linux 特有的文件系统,它拥有传统UNIX 文件系统的许多特性,如块、inode
和目录等概念。Ext2 非常健壮,具有很多优良的性能。同时,Ext2 也是可扩展的,它提供
的扩展功能允许用户在不格式化文件系统的情况下使用新的特性。
—————————————————-
最大文件大小: 1TB
最大文件极限: 仅受文件系统大小限制
最大分区/文件系统大小: 4TB
最大文件名长度: 255 字符
缺省最小/最大块大小: 1024/4096 字节
缺省inode 分配: 每4096 字节为1
在强制FS 检查前的最大装载: 20(可配置)
—————————————————-

Ext3

Ext3 文件系统构筑于ext2 文件系统之上,对标准的Linux ext2 文件系统进行了日志扩展。
日志特性显著地减少文件系统崩溃后的恢复时间,它被广泛地应用于带有共享磁盘的HA 站
点。
—————————————————-
最大文件大小: 1TB
最大文件极限: 仅受文件系统大小限制
最大分区/文件系统大小: 4TB
最大文件名长度: 255 字符
缺省最小/最大块大小: 1024/4096 字节
缺省inode 分配: 每4096 字节为1
在强制FS 检查前的最大装载: 20(可配置)
—————————————————-
ReiserFS

ReiserFS 文件系统3.2.25 版是一种可选的日志文件系统。其优点包括更好的磁盘空间利用率、
更好的磁盘访问性能和更快的崩溃恢复功能。
—————————————————-
最大文件大小: 1TB
最大文件极限: 32k 目录,42 亿文件
最大分区/文件系统大小: 4TB
最大文件名长度: 255 字符
—————————————————-
JFS

日志文件系统(Journaled File System, JFS)是一种全64 位文件系统。所有文件系统结构字
段均为64 位大小。它允许JFS 同时支持大文件和分区。JFS 由IBM 根据GPL 许可开发,它
是从其AIX 系统移植过来的。
JFS 提供基于日志的字节级文件系统,它可以开发用于面向交易的高性能系统。它是可扩展
的,且稳定可靠,其优于非日志文件系统之处在于其快速重新启动能力。JFS 可以在数秒钟
或分钟之间将文件系统恢复到完好一致的状态。
尽管它主要针对服务器的高吞吐量和可靠性要求(从单一处理器系统到高级多处理器和集群
系统)而设计,JFS 同样也适用于要求性能和可靠性的客户配置。
—————————————————-
最小文件系统大小 16 MB
最大文件大小: 受体系结构限制
最大文件极限: 受文件系统大小限制
缺省最小/最大块大小: 1024/4096 字节
缺省inode 分配: 动态
—————————————————-

LVM

逻辑卷管理程序(Logical Volume Manager, LVM)是一种在线磁盘存储管理的子系统,它已
经成为跨Linux 存储管理的“事实上”标准。
LVM 支持磁盘和磁盘子系统的企业级卷管理,它可以成组任意数量的磁盘到卷组。卷组的
总能力可以分配给逻辑卷,这些逻辑卷可以按正常块设备来进行访问。
此外,LVM 还提供存储的逻辑分离。当在线地对块设备进行大小调整的过程中,可以将数
据从一个物理设备移动到另一个物理设备。LVM 也允许系统管理员轻松地对系统进行升级,
去除有故障的磁盘,重新组织负载,并适应变化了的系统需求。
—————————————————-
最大逻辑卷大小 从使用4 Mb 盘区的256 Gb
到使用较大PE 的1 Pb
最大逻辑卷数: 256
最大逻辑组数: 99
每PV 的最大PE 数: 65534
缺省物理盘区大小: 4 Mb
—————————————————-