TUX安装配置简明教材 资料供兄弟们参考

由 Archer 在 05-25-2002 03:13 发表:

TUX安装配置简明教材 资料供兄弟们参考

TUX安装配置简明教材

Linuxaid.com.cn 02-04-17 15:18 1098p iamafan

--------------------------------------------------------------------------------

第一章 TUX是什么 ?

第二章 安装TUX

第三章:配置

第四章:安全性

第五章、用户-空间可装入模块

第一章 TUX是什么 ?

TUX是基于GNU公众许可证下的,建立于核心网络服务器。

它现在限于服务静态的网页并且与核心空间模块、用户空间模块、特定用户空间的网络服务器守护进程协调以提供动态的内容。不管怎样,特定用户空间的网络服务不需要被改变 ,因为 TUX能够与他们协调。然而、用户空间代码不得不使用一个新的以TUX(2)系统调用为基准的接口。

虽然动态内容正在成为日益流行的服务,但是还存在大量静态内容服务的需要。例如:几乎所有的图象是静态的。TUX可以很有效地从 linux核心那里得到静态内容的服务。一个类似的操作已经被网络文件系统(网络文件系统)守护进程于核心运行。

TUX也有高速缓冲动态内容的能力。TUX模块(可以插入核心空间或用户空间;推荐用户空间)可以创造充分利用页高速缓冲存储器的"对象 "。为响应一个动态数据的请求,一TUX模块可以发送一个混合的动态合成数据并且高速缓冲预产生的对象,以此将TUX零副本体系结构的优越性最大化

这个新的体系结构为了服务动态的内容,需要一个新的应用编程接口。当前的那些面向公共网关接口的应用编程接口,不能充分地映射到TUX的API上。因此、现有的公共网关接口应用必须在 TUX处理他们之前被转换。如果那些公共网关接口应用程序不需要TUX的加速,TUX可以按照那些CGI应用程序的通常执行方式来处理。这个被TUX的公共网关接口模块所执行。TUX还可以通过重定向处理综合的要求到另一个网络服务器守护进程,比如Apache。换句话说、静态的内容、TUX模块、旧式的CGI应用程序,和为其他的webservers而书写的程序,可以明确地同TUX在一样的web系统上运转。

总之,在TUX及其他webservers之间的差异包括∶

1、TUX的部分运行在可定制的2.4.x或较高版本的核心内,另一部分作为用户-空间守护进程运行。

2、充分利用网卡的能力,TUX能直接从页高速缓冲存储器通过DMA方式将数据传输到网络,从而避免数据多余拷贝。

3、当 TUX不确定如何处理一个请求,或者收到一个请求是它不能处理的,它总是重定向请求到用户-空间网络服务器守护进程,用RFC兼容的的方式进行处理。这个用户-空间网络服务器守护进程很好的一个例子是Apache。

注:Apache在这个文档中被用于作为用户空间Web服务器守护进程的例子。

关于TUX或这文档的疑问或备注,参加tux list@_redhat.com>邮寄列表关于邮寄列表说明,请参见 http://www.redhat.com/mailing - lists/。

也可以访问Red Hat TUX网络服务器服务支持页http://www.redhat.com/services/techsupport/application/tux.html

TUX 2.1新的特色

TUX 2.1版本是TUX 1.0的升级,并且保持与用户-空间模块的源代码级兼容性。增强的特性包括:

1、真正的零拷贝磁盘读取:鉴于TUX 1.0将数据拷贝进入临时的缓冲,TUX 2.1和页高速缓冲存储器结合起来,从而运用零拷贝的I/O块操作。

2、通用的零拷贝网数据络写操作:TUX 2.1运用通用的零拷贝TCP框架。

3、零-拷贝分析:TUX分析哪里是可能的直接输入分组。即使在随机存取存储器的有限状态里,TUX能完全的行使 back-to-back的零拷贝I/O功能。

其他的变化包括:

4、增强用户-空间工具和模块支持。

5、多虚拟主机支持,添加了基于主机的虚拟服务器支持。除了RAM和磁盘空间的限制外,理论上对虚拟主机的数量没有限制。

6、可以将执行的CGI绑定到指定CPU上。

7、修正了一些可能引起性能问题的BUG。

系统环境需求摘要

1、针对TUX定制的Linux内核2.4或者更高的版本系列。

2、x86, Alpha, IA64 or PowerPC/64硬件平台, PowerPC/32也可以,但是在Sparc尚未测试过

3、同一系统中必须有类似Apache这样的通用Web服务器,用来处理TUX不能处理的请求。

当前版本限制

TUX仅能在统一服务器上调用其他更强大的web服务器来处理特殊请求,在将来的版本里,可以将这些请求通过轮转算法重定向到一组服务器中。

第二章 安装TUX

这一章描述如何进行TUX的安装。安装介绍:

1、为了进一步优化服务性能,建议将静态文档的根目录存放在独立的RAID分区中。

2、如果TUX没有被编译进内核,那么经过配置和重新编译将它编译到内核里。

3、使用rpm -Uvh tux-2.1.0-2.i386.rpm命令安装TUX相关的包。

4、将index.html创建在 /var/www/html目录下,作为系统缺省根目录。

5、使用/etc/rc.d/init.d/tux start 命令启动TUX ,如果你使用的不是redhat系统,请使用该目录下的./tux.init命令启动,启动后通过浏览器测试你的http://localhost/是否正常。

最后的TUX发行版可以从http://people.redhat.com/~mingo/TUX-patches/下载,安装TUX升级包可以使用以下步骤进行:

1、下载最新的TUX补丁和工具包

http://people.redhat.com/~mingo/TUX-patches/

2、使用patch -p0 < tux2-full-2.4.2-X6 在2.4.2内核上打上TUX补丁。

3、执行 make oldconfig 使能TUX的内核功能,然后编译、导入TUX核心。

4、编译、安装用户空间工具包,这里tux-2.0.25.tar.gz为你要安装的TUX软件包版本。

tar xzvf tux-2.0.25.tar.gz

cd tux-2.0.25

make

make install

5、在 /var/www/html创建index.html文件,作为TUX的缺省文档根目录

6、使用/etc/rc.d/init.d/tux start 命令启动TUX ,如果你使用的不是redhat系统,请使用该目录下的./tux.init命令启动,启动后通过浏览器测试你的http://localhost/是否正常。

日志文件

对于每一个web请求,TUX的日志系统会精确的记录,包括;请求者地址、时戳(精确到秒)、请求的指定文件、传输的文件尺寸以及请求的最终状态。

面向TUX的日志文件以二进制方式格式被保存在/var/log/tux下。在这个二进制格式文件中,日志文件大约只有标准ASCII文本日志文件尺寸的50%。要使用命令

/usr/sbin/tux2w3c /var/log/tux

查看日志文件。tux2w3c程序将二进制的日志文件转换成标准w3c格式--符合全球网服务器软件日志文件的标准。如果你想保存输出的美国信息交换标准码,你可以重定向输出到文件∶

/usr/sbin/tux2w3c /var/log/tux > tux.log

在那里日志输出文件以tux.log命名。

输出的范例:

195.4.12.3 - - Fri Nov 9 01:05:56 2001 "GET /test.html HTTP/1.1" - 53 200

195.4.12.3 - - Fri Nov 9 01:06:10 2001 "GET / HTTP/1.1" - 2890 200

255.255.255.255 - - Fri Nov 9 01:06:10 2001 "GET /icons/apache_pb.gif HTTP/1.1" - 0 404

195.4.12.3 - - Fri Nov 9 01:06:10 2001 "GET /poweredby.png HTTP/1.1" - 1154 200

195.4.12.3 - - Fri Nov 9 01:06:04 2001 "GET /test.html HTTP/1.1" - 53 200

195.4.12.3 - - Fri Nov 9 01:06:22 2001 "GET /manual/index.html HTTP/1.1" - 5557 200

195.4.12.3 - - Fri Nov 9 01:06:04 2001 "GET /test.html HTTP/1.1" - 53 200

195.4.12.3 - - Fri Nov 9 01:06:22 2001 "GET /manual/images/apache_header.gif HTTP/1.1" - 4084 200

195.4.12.3 - - Fri Nov 9 01:06:04 2001 "GET /test.html HTTP/1.1" - 53 200

195.4.12.3 - - Fri Nov 9 01:06:22 2001 "GET /manual/images/pixel.gif HTTP/1.1" - 61 200

195.4.12.3 - - Fri Nov 9 01:06:04 2001 "GET /test.html HTTP/1.1" - 53 200

195.4.12.3 - - Fri Nov 9 01:06:26 2001 "GET /manual/invoking.html HTTP/1.1" - 1 200

195.4.12.3 - - Fri Nov 9 01:06:04 2001 "GET /test.html HTTP/1.1" - 53 200

195.4.12.3 - - Fri Nov 9 01:06:35 2001 "GET /manual/stopping.html HTTP/1.1" - 1 200

195.4.12.3 - - Fri Nov 9 01:06:04 2001 "GET /test.html HTTP/1.1" - 53 200

195.4.12.3 - - Fri Nov 9 01:06:37 2001 "GET /manual/howto/ssi.html HTTP/1.1" - 18523 200

195.4.12.3 - - Fri Nov 9 01:06:41 2001 "GET /manual/new_features_1_3.html HTTP/1.1" - 34531 200

第三章:配置

这章描述如何配置TUX网络服务器。

操作方法

推荐运行方式是将TUX作为主Web服务器,Apache作为辅助的Web服务器。

Client Port: 8080 (or other)

Web Server Port: 80

因为推荐方式中TUX是主Web服务器,所以用户-空间守护进程的配置必须转换为使用端口8080。关于 Apache的配置,通过改变配置文件

/etc/httpd/conf/httpd.conf

中相应的行来进行:

Port 80

改为

Port 8080

因为安全原因,行

BindAddress *

将应转换为

BindAddress 127.0.0.1

这会防止外来的用户直接地从Apache访问。为了使转换生效,你必须重新启动 Apache,可以使用命令/etc/rc.d/init.d/httpd。

相对的模式是将用户-空间守护进程Apache作为主Web服务器,TUX作为辅助的Web服务器。

Client Port: 80

Web Server Port: 8080 (or other)

压缩gzip数据流

TUX能发送压缩(gzip)数据。这一点能够潜在减少网络服务器发送给客户浏览器的数据量和减少浏览器的加载时间。

作为默认值,数据压缩选项是无效的。为了启动它,把下面的行加到

/etc/sysctl.conf上∶

net.tux.compression=1

扩展名为.gz的gzip文件必须和你所希望服务的未压缩版本的页面位于同样的目录。为发送.gz文件,TUX中的下列条件必须成立。否则,那些初始文件被发送。

1、在/etc/sysctl.conf的TUX压缩特性被打开。

2、明确地确定客户程序能支持gzip编码。

3、初始文件存在,作为一正规的文件,并且有完全地的权限许可。

4、.gz文件存在,作为一正规的文件,并且有完全地的权限许可。

5、.gz文件和那初始文件一样的日期或比它更新。

6、.gz文件尺寸小于初始文件。

注释:一个cron作业可以被用来在各目录为最新的未压缩数据产生一个新的gzip文件。

参数表

这一章描述了如何使用提供的脚本来配置TUX参数。大部分的参数仅在TUX未运行得状态下才能设定。

参数列表

以下参数通过/proc/sys/net/tux文件可以修改,这些修改最初来自于/proc/sys/net/http 和 /proc/net/http。

表3-1

如果使用TUX的初始脚本/etc/rc.d/init.d/tux启动服务,就要通过 /etc/sysconfig/tux中指定的以下参数来设定相关信息。这些参数不能放在/etc/sysctl.conf文件中,因为初始化脚本会覆盖掉/etc/sysctl.conf重相应的参数。使用初始化脚本来启动TUX是一个比较好的做法。

表3-2

必须的参数

在TUX启动之前,以下的参数必须设定:

serverport

clientport

DOCROOT

DOCROOT参数必须和apache或者其他用户空间守护进程的Web文档根目录一致,这些用户空间守护进程用于处理TUX重定向过来的请求。


由 Archer 在 05-25-2002 03:14 发表:


启动TUX

TUX可以通过/etc/rc.d/init.d/tux脚本启动。

这个官方提供的教本可以用于在单处理器和多处理器的服务系统上启动TUX。

如果你想要使用自己编写的脚本启动TUX或者直接运行/usr/sbin/tux二进制执行文件启动它,那么你可以使用以下的参数:

表 3-3: /usr/sbin/tux 的选项:

选项描述

-t, --threads=N :tux线程数目

-d, --docroot=path :文档根目录

-m, --modpath=path:可加载用户空间扩充模块路径

-d, --daemon: 作为守护进程运行

-D, --date-interval=seconds:更新数据串的频率,单位为秒。

-?, --help 显示帮助信息

--usage 显示用法信息摘要

IRQ绑定能够带来少量的性能提高.如果你没有任何性能方面的经验,不推荐你尝试下列的做法。

IRQ绑定

将IRQ绑定到一组CPU中是2.4核心的一个新的特色。虽然它原来是作为 TUX的一部分发展,而现在则成为一般的、独立的系统核心的特色。每个IRQ源在linux中有一入口,即/proc/irq目录。例如:,IRQ 40的设定保存在/proc/irq/40下。IRQ绑定,或 IRQ联编,通过在该目录中smp_affinity的设置来配置。例如:,IRQ 40的smp_affinity保存在/proc/irq/40/smp_affinity下。smp_affinity的值设置为一个按照所有CPU编排的位掩码,该掩码被允许作为一个IRQ资源而使用。smp_affinity的缺省值是那十六进制值0xffffffff。这意味着IRQ的处理被发给全部的CPU。你不允许为了一个IRQ关闭全部的CPU掩码。如果IRQ控制器不支持IRQ绑定,那就不能从缺省值改变出来。如果多CPU被定义,那么IRQ源将使用最不繁忙的中央处理器。这被称作'最低优先级APIC(高级可编程中断控制器)路由选择.' IRQ绑定通过联编一个IRQ到具体的CPU或一组CPU来完成,联编按照回显一个十六进制值到对应的smp_affinity来实现。

因此,TUX的N个线程被联编到N个CPU上。如果单个TUX线程被使用(推荐情况)并且仅存在唯一的网络接口卡,那么那网络接口卡的IRQ将应与 cpu0联编在一起。

停止TUX

如果使用/etc/rc.d/init.d/tux start脚本来启动TUX ,那么必须使用/etc/rc.d/init.d/tux stop 来停止TUX服务。这样才会自动的将所有的用户空间加载模块卸载。

如果你没有使用上述的脚本停止TUX,请执行命令

/usr/sbin/tux -s 或者

/usr/sbin/tux --stop

调试TUX

如果你想要打印出TUX的状态、变量以及其他信息,可以执行gettuxconfig脚本。但你必须以root身份执行该命令。

MIME 类型

TUX在2.0.13版本(Linux内核patch 2.4.2-P3版本)支持三种MIME类型,他们在 /etc/tux.mime.types中有完整定义。

表 3-4: MIME 类型列表

MIME类型: 文件扩展名 :描述

TUX/redirect :*.pl *.php :所有以该扩展名结尾的文件都将重定向到第二服务器执行。

TUX/CGI :*.cgi *.pl :所有使用TUX/CGI后列出的扩展名的文件都将由TUX自带的CGI解释引擎执行C

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus