Rootop 服务器运维与web架构

2011-03-17
发表者 Venus
暂无评论

贴一个小命令 yum search PackName

[root@localhost Server]# yum search php
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
================================= Matched: php =================================
php-pear.noarch : PHP Extension and Application Repository framework
compat-readline43.i386 : 与旧版本软件兼容的 redline 4.3库。
compat-readline43.x86_64 : 与旧版本软件兼容的 redline 4.3库。
fonts-arabic.noarch : 阿拉伯语字体。
iproute.x86_64 : 高级 IP 路由和网络设备配置工具。
libc-client.i386 : 用于 IMAP 和 POP 网络邮件协议的 C-client 邮件访问
libc-client.x86_64 : 用于 IMAP 和 POP 网络邮件协议的 C-client 邮件访问
php.x86_64 : PHP 嵌入在 HTML 中的脚本语言。(PHP:超级文本预处理器)
php-bcmath.x86_64 : 一个用于使用 bcmath 库的 PHP 模块
php-cli.x86_64 : Command-line interface for PHP
php-common.x86_64 : Common files for PHP
php-dba.x86_64 : 一个用于 PHP 程序的数据库抽象层
php-devel.x86_64 : 建构 PHP 扩展所需的文件。
php-gd.x86_64 : 一个用于使用 gd 图形库的 PHP 程序模块。。
php-imap.x86_64 : A module for PHP applications that use IMAP.
php-ldap.x86_64 : 一个用于使用 LDAP 的 PHP 程序的模块。
php-mbstring.x86_64 : 一个用于需要处理多字节字符串的 PHP 程序的模块。
php-mysql.x86_64 : 一个用于使用 MySQL 数据库的 PHP 程序的模块。
php-ncurses.x86_64 : 一个用于使用 ncurses 界面的 PHP 程序的模块。
php-odbc.x86_64 : 一个用于使用 ODBC 数据库的 PHP 程序的模块。
php-pdo.x86_64 : A database access abstraction module for PHP applications
php-pgsql.x86_64 : PHP 的 PostgreSQL 数据库模块。
php-snmp.x86_64 : 一个用于查询 SNMP 所管理设备的程序的模块。
php-soap.x86_64 : 一个用于使用 SOAP 协议的 PHP 程序的模块
php-xml.x86_64 : 使用 XML 的 PHP 程序的模块
php-xmlrpc.x86_64 : 一个用于使用 XML-RPC 协议的 PHP 程序的模块。
readline.i386 : 用来编辑定类的命令行的库。
readline.x86_64 : 用来编辑定类的命令行的库。
readline-devel.i386 : 开发使用 readline 库的程序所需的文件。
readline-devel.x86_64 : 开发使用 readline 库的程序所需的文件。
squirrelmail.noarch : SquirrelMail 网页邮件客户
totem.i386 : GNOME2 的媒体播放器
totem.x86_64 : GNOME2 的媒体播放器
totem-devel.i386 : Libraries/include files for Totem
totem-devel.x86_64 : Libraries/include files for Totem
totem-mozplugin.x86_64 : Mozilla plugin for Totem
velocity.x86_64 : 基于 Java 的模板引擎
[root@localhost Server]#

2011-03-17
发表者 Venus
暂无评论

负载均衡会话保持技术及原理

       1.什么是会话保持?
       在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中,一个客户与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,或者上几步的交互过程结果,服务器进行下一步操作时需要这就要求所有这些相关的交互过程都由一台服务器完成,而不能被负载均衡器分散到不同的服务器上。

       而这一系列的相关的交互过程可能是由客户到服务器的一个连接的多次会话完成,也可能是在客户与服务器之间的多个不同连接里的多次会话完成。不同连接的多次会话,最典型的例子就是基于http的访问,一个客户完成一笔交易可能需多次点击,而一个新的点击产生的请求,可能会重用上一次点击建立起来的连接,也可能是一个新建的连接。

        会话保持就是指在负载均衡器上有这么一种机制,可以识别做客户与服务器之间交互过程的关连性,在作负载均衡的同时,还保证一系列相关连的访问请求会保持分配到一台服务器上。

       2. F5支持什么样的会话保持方法?
       F5 BigIP支持多种的会话保持方法,其中包括:简单会话保持(源地址会话保持)、HTTP Header的会话保持,基于SSL Session ID的会话保持,I-Rules会话保持以及基于 HTTP Cookie的会话保持,此外还有基于SIP ID以及Cache设备的会话保持等,但常用的是简单会话保持,HTTP Header的会话保持以及 HTTP Cookie会话保持以及基于I-Rules的会话保持。

2.1 简单会话保持
       简单会话保持也被称为基于源地址的会话保持,是指负载均衡器在作负载均衡时是根据访问请求的源地址作为判断关连会话的依据。对来自同一IP地址的所有访问请求在作负载均时都会被保持到一台服务器上去。在 BIGIP设备上可以为“同一IP地址”通过网络掩码进行区分,比如可以通过对IP地址192.168.1.1进行255.255.255.0的网络掩码,这样只要是来自于192.168.1.0/24这个网段的流量BIGIP都可以认为他们是来自于同一个用户,这样就将把来自于192.168.1.0 /24网段的流量会话保持到特定的一台服务器上。

        简单会话保持里另外一个很重要的参数就是连接超时值,BIGIP会为每一个进行会话保持的会话设定一个时间值,当一个会话上一次完成到这个会话下次再来之前的间隔如果小于这个超时值,BIGIP将会将新的连接进行会话保持,但如果这个间隔大于该超时值,BIGIP将会将新来的连接认为是新的会话然后进行负载平衡。

       基于原地址的会话保持实现起来简单,只需要根据数据包三、四层的信息就可以实现,效率也比较高。存在的问题就在于当多个客户是通过代理或地址转换的方式来访问服务器时,由于都分配到同一台服务器上,会导致服务器之间的负载严重失衡。另外一种情况上客户机数量很少,但每个客户机都会产生多个并发访问,对这些必发访问也要求通过负均均衡器分配到多个服器上,这时基于客户端源地址的会话保持方法也会导致负载均衡失效。

2.2 基于Cookie的会话保持
2.2.1 cookie插入模式:
       在 Cookie插入模式下,BigIP将负责插入cookie,后端服务器无需作出任何修改.当客户进行第一次请求时,客户HTTP请求(不带 cookie)进入BIGIP, BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复(不带cookie)被发回BIGIP,然后 BIGIP插入cookie,将HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次BIGIP插入的cookie)进入 BIGIP,然后BIGIP读出cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,由于服务器并不写入cookie,HTTP回复将不带有cookie,恢复流量再次经过进入BIGIP时,BIGIP再次写入更新后的会话保持 cookie。

2.2.2 Cookie 重写模式
       当客户进行第一次请求时,客户HTTP请求(不带cookie)进入 BIGIP, BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个空白的cookie并发回BIGIP,然后 BIGIP重新在cookie里写入会话保持数值,将HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次BIGIP重写的 cookie)进入BIGIP,然后BIGIP读出cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有空的cookie,恢复流量再次经过进入BIGIP时,BIGIP再次写入更新后会话保持数值到该 cookie。

2.2.3 Passive Cookie 模式,服务器使用特定信息来设置cookie。
       当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP, BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个cookie并发回BIGIP,然后 BIGIP将带有服务器写的cookie值的HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次服务器写的cookie)进入 BIGIP,然后BIGIP根据cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有更新的会话保持cookie,恢复流量再次经过进入BIGIP时,BIGIP将带有该cookie的请求回复给客户端。

2.2.4 Cookie Hash模式:
       当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP, BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个cookie并发回BIGIP,然后 BIGIP将带有服务器写的cookie值的HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次服务器写的cookie)进入 BIGIP,然后BIGIP根据cookie里的一定的某个字节的字节数来决定后台服务器接受请求,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有更新后的cookie,恢复流量再次经过进入BIGIP时,BIGIP将带有该 cookie的请求回复给客户端。

2.3 SSL Session ID会话保持
       在用户的SSL访问系统的环境里,当SSL 对话首次建立时,用户与服务器进行首次信息交换以:1}交换安全证书,2)商议加密和压缩方法,3)为每条对话建立Session ID。由于该Session ID在系统中是一个唯一数值,由此,BIGIP可以应用该数值来进行会话保持。当用户想与该服务器再次建立连接时,BIGIP可以通过会话中的 SSL Session ID识别该用户并进行会话保持。

       基于SSL Session ID的会话保持就需要客户浏览器在进行会话的过程中始终保持其SSL Session ID不变,但实际上,微软Internet Explorer被发现在经过特定一段时间后将主动改变SSL Session ID,这就使基于SSL Session ID的会话保持实际应用范围大大缩小。

    (我们公司所采用的是国内深信服厂商的AD设备,但从会话保持角度来讲,提供了“源IP”和“cookie”会话保持方法,从上面来看,源IP方式的确不适用NAT用户,所以采用的cookie。)

2011-03-14
发表者 Venus
暂无评论

Mar 13 04:02:06 s1 syslogd 1.4.1: restart.

查看/var/log/message 日志可能会出现只有这一条记录以前的日志记录丢失,其实没有丢是因为syslog服务的原因。

Mar 13 04:02:06 s1 syslogd 1.4.1: restart.

这是syslog服务中的logrotate的作用,每一段时间就会把日志改名存档(archive),再重启syslogd,在log目录下会有messages.1 之类的文件,就是之前日志的备份。

2011-03-11
发表者 Venus
暂无评论

编译安装 nginx-0.8.54

第一个错误:

/configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using –without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using –with-pcre=<path> option.

(PCRE(Perl Compatible Regular Expressions)是一个Perl库)

PCRE是perl所用到的正则表达式,目的是让所装的软件支持正则表达式。默认情况下,Nginx只处理静态的网页请求,也就是html.如果是来自动态的网页请求,比如*.php,那么Nginx就要根据正则表达式查询路径,然后把*.PHP交给PHP去处理

解决方法,安装pcre-devel包。

第二个错误:

./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library.  You can either disable the module by using
–without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
–with-http_ssl_module –with-openssl=<path> options.

./configure: error: the HTTP cache module requires md5 functionsfrom OpenSSL library.  You can either disable the module by using–without-http-cache option, or install the OpenSSL library into the system,or build the OpenSSL library statically from the source with nginx by using–with-http_ssl_module –with-openssl=<path> options.

解决方法,安装openssl-devel包

编译成功。

make

make install

/usr/local/nginx/sbin/nginx

测试:Welcome to nginx!

安装好了的目录为:

nginx path prefix: “/usr/local/nginx”

nginx binary file: “/usr/local/nginx/sbin/nginx”

nginx configuration prefix: “/usr/local/nginx/conf”

nginx configuration file: “/usr/local/nginx/conf/nginx.conf”

nginx pid file: “/usr/local/nginx/logs/nginx.pid”

nginx error log file: “/usr/local/nginx/logs/error.log”

nginx http access log file: “/usr/local/nginx/logs/access.log”

nginx http client request body temporary files: “client_body_temp”

nginx http proxy temporary files: “proxy_temp”

nginx http fastcgi temporary files: “fastcgi_temp”

安装搞定,以后再继续写配置。