MSN: luxuabc@hotmail.com

发布新日志

  • 如何在Debian中设置locale

    2008-10-20 10:40:52

    Linux中通过locale来设置程序运行的不同语言环境,localeANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8zh代表中文,CN代表大陆地区,UTF-8表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置:

    1.    LC_COLLATE
    定义该环境的排序和比较规则

    2.    LC_CTYPE
    用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。

    3.    LC_MONETARY
    货币格式

    4.    LC_NUMERIC
    非货币的数字显示格式

    5.    LC_TIME
    时间和日期格式

    6.    LC_MESSAGES
    提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。LANGUAGE参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"

    7.    LANG
    LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 LC_ALL

    8.    LC_ALL
    它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响。

    一个例子:

    设置前,使用默认locale
    debian:~# locale
    LANG="POSIX"
    LC_CTYPE="POSIX"
    LC_NUMERIC="POSIX"
    LC_TIME="POSIX"
    LC_COLLATE="POSIX"
    LC_MONETARY="POSIX"
    LC_MESSAGES="POSIX"
    LC_PAPER="POSIX"
    LC_NAME="POSIX"
    LC_ADDRESS="POSIX"
    LC_TELEPHONE="POSIX"
    LC_MEASUREMENT="POSIX"
    LC_IDENTIFICATION="POSIX"
    LC_ALL= 
    设置后,使用zh_CN.GDK中文locale
    debian:~# export LC_ALL=zh_CN.GBK
    debian:~# locale
    LANG=zh_CN.UTF-8
    LC_CTYPE="zh_CN.GBK"
    LC_NUMERIC="zh_CN.GBK"
    LC_TIME="zh_CN.GBK"
    LC_COLLATE="zh_CN.GBK"
    LC_MONETARY="zh_CN.GBK"
    LC_MESSAGES="zh_CN.GBK"
    LC_PAPER="zh_CN.GBK"
    LC_NAME="zh_CN.GBK"
    LC_ADDRESS="zh_CN.GBK"
    LC_TELEPHONE="zh_CN.GBK"
    LC_MEASUREMENT="zh_CN.GBK"
    LC_IDENTIFICATION="zh_CN.GBK"
    LC_ALL=zh_CN.GBK

    "C"是系统默认的locale"POSIX""C"的别名。所以当我们新安装完一个系统时,默认的locale就是C或POSIX

    Debian中安装locales的方法如下:

    · 通过apt-get install locales命令安装locales
    · 安装完成locales包后,系统会自动进行locale配置,你只要选择所需的locale,可以多选。最后指定一个系统默认的locale。这样系统就会帮你自动生成相应的locale和配置好系统的locale

    · 增加新的locale也很简单,用dpkg-reconfigure locales重新配置locale即可。

    · 我们也可手动增加locale,只要把新的locale增加到/etc/locale.gen文件中,再运行locale-gen命令即可生成新的locale。再通过设置上面介绍的LC_*变量就可设置系统的locale了。下是一个locale.gen文件的样例。

    · # This file lists locales that you wish to have built. You can find a list
    · # of valid supported locales at /usr/share/i18n/SUPPORTED. Other
    · # combinations are possible, but may not be well tested. If you change
    · # this file, you need to rerun locale-gen.
    · #
    ·zh_CN.GBK GBK
    ·zh_CN.UTF-8 UTF-8
  • 在Debian 4.0上安装Vmware tools

    2008-10-16 14:00:11

    介绍一下如何在Debian 4.0虚拟机中安装vnware tools。在测试过程中我们经常会用到虚拟机,在虚拟机中安装vmware tools后可以很方便的和主机传递文件。

    1. 选择VM->Install VMware Tools...

    2. 用uname -r检测linux内核版本

    如:2.6.18-6-686

    3. 安装gcc-4.1和linux-headers-2.6.18-6-686(根据你的系统版本)

    apt-get install gcc-4.1

    apt-get install linux-headers-2.6.18-6-686

    4. 从CDROM中拷贝VMwareTools-6.0.2-59824.tar.gz到/tmp

    这个文件就是VMware tools的安装包。如果在第一步执行后没有在cdrom中找到此文件,则需要从网上下载或者在其他的Linux虚拟机(如redhat)中执行第一步,并将此文件拷贝到debian上。

    5. 建立连接

    ln -s /usr/src/linux-headers-2.6.18-4-486 /usr/src/linux
    6.设置环境变量
    export CC=/usr/bin/gcc-4.1
     
    7. 解压缩:tar zxvf VMwareTools-6.0.2-59824.tar.gz
     
    8. 进入目录运行 ./vmware-install.pl
     
    接受所有默认设置,选择分辨率为1024*768
     
    安装成功。
  • 在IIS上配置SSL服务

    2008-05-16 14:00:49

    在测试web应用的时候经常会测试HTTPs的联接情况。这是就需要自己搭建HTTPS服务器,这里讲述如何用IIS6.0搭建HTTPS服务。创建一个服务器证书是简单的,IIS的向导就可以完成这个功能。但是创建出的证书并没有经过CA认证,所以Brower在访问的时候,首先会出现警告。要模拟正常工作的情况,最好自己创建一个CA,然后再用这个CA去签名服务器证书,这样就可以了。 主要步骤是:

    1. 下载并安装openssl windows版本。

    2. 创建CA。

    openssl req -x509 -newkey rsa:1024 -keyout cakey.pem -out cacert.pem

    然后将cakey.pem放在apps\demoCA\private\下,把cacert.pem放在apps\demoCA\下。

    3. 用IIS的certificate向导产生一个证书申请,certreq.txt. 注意证书申请时的Country要与生成CA时候选择的相同,同时Common name选项就是你的服务器DNS name。

    4. 用第2步生成的CA来签名证书

    openssl ca -in certreq.txt -out server.pem

    5. 把pem格式转换为X509格式

    openssl x509 -in server.pem -out server.cer

    6. 在IIS server中继续完成证书配置。

    7. 将CA的证书转换为x509格式:

    openssl x509 -in cacert.pem -out cacert.cer

    8. 将cacert.cer导入Browser中。

    现在就可以用https访问服务器了,并且不会出现警告窗口。


  • Windows NLB cluster配置要点

    2008-04-21 17:59:48

        在Web测试过程中,往往需要对服务器进行负载平衡,Windows Server本身就提供了一种负载平衡的机制。关于Windows NLB的配置网上也有许多现成的教程,这里我只说明一些重要的参数配置以及它们的含义。通过打开本地连接的属性选择“网络负载均衡”,并单击属性按钮就可以打开NLB的配置窗口。如下:

    在Cluster IP configuration中填入必要的信息,如IP,掩码,DNS名称。Cluster有两种工作模式,unicast和multicast。首先说明一下,在Windows NLB中客户端的包会传递给每一个Cluster节点,然后每个节点根据特定的规则进行过滤。

    当选择unicast的时候,cluster使用一个虚拟的IP地址和Mac地址,一般在L2的switch上,会记录固定的MAC地址和端口的对应关系,这样防止数据包发向每个交换机端口。但在unicast的时候系统根据一个注册表中的值(MaskSourceMAC)来决定是否隐藏MAC地址,如果值为1,交换机就无法记录对应关系,所以发个cluster的数据包会在交换机的每个端口进行发送,这样就造成了switch flooding。但如果设置为0,那么MAC地址就会与特定端口绑定,所有数据包都发送至一台服务器,所以就无法进行Load Balance。这时候就需要其他技术来让switch不要记录Cluster Mac地址。选择unicast,所有节点共享相同的IP和MAC地址,所以节点之间不能通信。

    当选择multicast时候,给cluster分配了一个多播地址而不是改变它的静态地址,所以允许节点之间进行通信。但是对于节点ARP的请求,返回的response中的IP地址会被多播地址取代,这种ARP请求会被一些路由器拒绝,因此需要管理员自己在router中加入静态的ARP记录。

    接下来需要定义主机参数如下:

    Priority选择1-32之间的数字,每个节点应该不相同,Dedicated IP是本机IP地址。

    最后添加port rules如下:

     “Filtering mode(筛选模式):在此选项设置中,选择以何种方式提供服务有“Multiple host(多主机)”和“single host”。选择多主机之间进行负载平衡时,“Affinity(相似性)可以选择“None”“Single” “Class C”三种。相似性在此是设置在多主机负载平衡时,对客户端的IP做出的相应反应。选择“None”表示所有节点都是等价的,所有请求根据Load Weight的配置进行分配。选择“Single(单一),表示第一次用户端访问VIP分配到实际的物理主机后,以后从该客户端的所有请求都由这台主机提供处理;若选择“Class C”模式,则表示一个C类地址的客户端请求将全部由第一次处理请求的主机负责。当请求为有状态的时候,应该选择Single或者Class C,当请求是无状态的时候选择None。不过当某个节点发生故障重新加入cluster后所有的状态都会丢失。
             “Single Host
    (单一主机):若选择此选项,该端口范围内的所有请求都将由一台主机来进行处理,此选项将配合后面的主机优先级来进行主机判定。

     

  • 如何升级Windows Server 2003到Windows Server 2003 R2

    2008-03-03 17:06:24

        Windows Server 2003 R2 是微软为了扩展 Windows Server 2003 系统的功能而推出的一项功能软件包,目前已经有很多用户将 Windows Server 2003 升级到了 R2 版。

        Windows Server 2003 R2 的程序文件是在 Windows Server 2003 SP1 的基础上开发的,因此在将 Windows Server 2003 升级到 R2 版之前,我们必须首先安装 SP1 或 SP2(至少安装 SP1)。在升级到 R2 版后,SP1 将无法卸载。Windows Server 2003 R2 的安装程序由两张 CD 组成,第一张 CD 是 Windows Server 2003 with SP1 的安装程序、第二张就是 R2 组件的安装程序。如果我们已经有安装好的 Windows Server 2003 系统(已安装 SP1 或 SP2,至少安装有 SP1),只要直接运行第二张光盘中的安装程序,即可将 Windows Server 2003 升级到 R2 版了。

    但是当Server本身是域控制器的时候,升级过程中将会产生如下错误:

    “The Active Directory installation wizard cannot continue because the forest is not prepared for installing windows server 2003 ,use the adprep command-line tool to prepare both the forest and the domain for more information about using  the ADprep ,see active directory Help。。。”

    产生的原因是由于域中的Schema没有扩展到最新的匹配windows 2003 server R2 的SCHEMA。解决方法是:将R2的第二张光盘放入光驱,然后运行以下命令:
    光驱盘符:\CMPNENTS\R2\ADPREP\adprep.exe /forestprep

    最好先对AD进行备份以防止意外发生。

Open Toolbar