第一章 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