QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1526|回复: 0

[系列.原创]Linux不完全攻略_11

[复制链接]
发表于 2004-11-4 15:13:49 | 显示全部楼层 |阅读模式
回复贴到 http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=91508 。不要回复本贴。

[code:1]
11        Web服务器与JSP服务器整合
        版本:2004-11-02-02

    Apache是专业的Web服务器,专注于它的本行,而碰到JSP、PHP、ASP类的动态网页,它只能干瞪眼;Tomcat主要是个JSP引擎,充当Web服务器只是兼职,静态页面处理能力不足,也无法应对大量HTTP访问。但是Apache能够把不认识的网页提交给其他服务器处理并接受处理结果,而Tomcat也能够处理其他服务器提交的JSP页并返回处理结果,两者一拍即合,分工明确,合作愉快。

    下面的说明中,软件版本和Apache、Tomcat的安装路径以你的实际情况为准。

        11.1        早期的module_webapp方式

                11.1.1        准备工作

    去http://www.apache.org,在那里找apr和对应你Tomcat版本的jakarta-tomcat-connectors-4.1.30-src下载。都要source的。我下的是“apr-0.9.4.tar.gz”和“jakarta-tomcat-connectors-4.1.30-src.tar.gz”。把它们对应的md5校验码文件一起下回来。
    分别对下回来的文件执行“md5sum”,把结果与各自校验码文件里的内容对比,如果对不上请重新下载。

                11.1.2        安装整合插件

    把“jakarta-tomcat-connectors-4.1.30-src.tar.gz”丢进装临时文件的目录“/opt/prog/tmp”,并解压缩到此。
    进入解压缩生成的目录“jakarta-tomcat-connectors-4.1.30-src”。注意到里面的“webapp”目录了吧?把“apr-0.9.4.tar.gz”丢进去,并解压缩到那里。
    进“webapp”,把新生成的目录“apr-0.9.4”更名或链接为“apr”。

    开终端,进这个目录:
[root@TFW-RFL40 root]# cd /opt/prog/tmp/jakarta-tomcat-connectors-4.1.30/webapp/apr
[root@TFW-RFL40 apr]#

    生成编译配置文件:
[root@TFW-RFL40 apr]# ./support/buildconf.sh
……
……
……
[root@TFW-RFL40 apr]#

    配置,生成编译选项:
[root@TFW-RFL40 apr]# ./configure --with-apxs="/opt/prog/c/Apache/bin/apxs"
……
……
……
[root@TFW-RFL40 apr]#

    编译、连接,把源代码变成本地二进制码:
[root@TFW-RFL40 apr]# make
……
……
……
[root@TFW-RFL40 apr]#

    进目录“Apache-2.0”,如果前面没出差错,这里会有“mod_webapp.so”,这就是所需要的整合插件。如果你的Apache版本是是1.3.x,整合插件应该在“Apache-1.3”里。把“mod_webapp.so”属性修改为所有者可执行。

    去Apache的安装目录“/opt/prog/c/Apache”,把整合插件复制或移动到目录“modules”里。如果Apache版本是是1.3.x,整合插件复制或移动到目录“libexec”里。

                11.1.3        整合

    最后一步,让Apache与Tomcat携手工作,需要修改配置文件。

                        11.1.3.1        Apache

    编辑Apache的配置文件“http.conf”,在其最后添加如下一行:
LoadModule webapp_module modules/mod_webapp.so
    如果Apache版本是是1.3.x,添加这行:
LoadModule webapp_module libexec/mod_webapp.so
    保存修改。

    在终端里检查插件模块是否能正常加载:
[root@TFW-RFL40 apr]# cd /opt/prog/c/Apache
[root@TFW-RFL40 Apache]# ./bin/apachectl -configtest
    如果能正常加载,会出现:
Syntax OK
[root@TFW-RFL40 apr]#
    否则请检查前面是否有差错,或查找其他资料。

    再次编辑“http.conf”,继续在最后添加如下两行:
ServerName localhost:8008
WebAppConnection warpConnection warp localhost:8008

    把那些需要对外开放的“Web应用”以“WebAppDeploy examples warpConnection XXX”形式逐行添加在配置文件“httpd.conf”末尾,其中“XXX”为你的“Web应用”的Path。

                        11.1.3.2        Tomcat

    到Tomcat的配置文件目录“/opt/prog/m/Tomcat/conf”,用文本编辑器打开“server.xml”。如果从前没有改动过这个文件,能找到这样一段,或者类似的段:
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8080" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="100" debug="0" connectionTimeout="20000"
               useURIValidationHack="false" disableUploadTimeout="true" />

    把这段添加在上面一段之前:
    <Connector className="org.apache.catalina.connector.warp.WarpConnector"
               port="8008" minProcessors="5" maxProcessors="75"
               enableLookups="true"
               acceptCount="10" debug="0"/>
    连接插件“mod_webapp.so”默认使用8008端口,这段是对8008端口的定义,可以在“server-noexamples.xml.config”里找到。如果Tomcat是4.1.18/4.1.19版本,请注意“server.xml”里是否已经有8008端口的说明,如果有,就不必再添加。

        11.2        更新的module_jk2方式

                11.2.1        准备工作

    去http://www.apache.org,在那里找jakarta-tomcat-connectors-jk2-src-current,要source,不要binary的。把它的md5校验码文件也找出来,都下载。我下的是“jakarta-tomcat-connectors-jk2-src-current.tar.gz”和“jakarta-tomcat-connectors-jk2-src-current.tar.gz.md5”。
    分别对下回来的文件执行“md5sum”,把结果与各自校验码文件里的内容对比,如果对不上请重新下载。

                11.2.2        安装整合插件

    把“jakarta-tomcat-connectors-jk2-src-current.tar.gz”丢进装临时文件的目录“/opt/prog/tmp”。

    开终端,进这个目录:
[root@TFW-RFL40 root]# cd /opt/prog/tmp
[root@TFW-RFL40 tmp]#

    解压缩:
[root@TFW-RFL40 tmp]# tar zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz
……
……
……
[root@TFW-RFL40 tmp]#

    生成编译配置文件:
[root@TFW-RFL40 tmp]# cd jakarta-tomcat-connectors-jk2-src-current
[root@TFW-RFL40 jakarta-tomcat-connectors-jk2-src-current]# cd jk
[root@TFW-RFL40 jk]# cd native2
[root@TFW-RFL40 natave2]# sh ./buildconf.sh
……
……
……
[root@TFW-RFL40 native2]#

    配置,生成编译选项:
[root@TFW-RFL40 apr]# ./configure --with-apxs2="/opt/prog/c/Apache/bin/apxs" -enable-EAPI
……
……
……
[root@TFW-RFL40 native2]#
    我不清楚这个EAPI是什么,但是我把这个参数加上后编译就成功了。

    编译、连接,把源代码变成本地二进制码:
[root@TFW-RFL40 apr]# make
……
……
……
[root@TFW-RFL40 native2]#

    进目录“jakarta-tomcat-connectors-jk2-src-current/build/jk2/apache2 ”,如果前面没出差错,这里会有“mod_jk2.so”,这就是所需要的整合插件。如果你的Apache版本是是1.3.x,整合插件可能在“jakarta-tomcat-connectors-jk2-src-current/build/jk2/apache”里。把“mod_jk2.so”属性修改为所有者可执行。

    去Apache的安装目录“/opt/prog/c/Apache”,把整合插件复制或移动到目录“modules”里。如果Apache版本是是1.3.x,整合插件复制或移动到目录“libexec”里。

                11.2.3        整合

    最后一步,让Apache与Tomcat携手工作,需要修改配置文件。

                        11.2.3.1        Apache

    编辑Apache的配置文件“http.conf”,在其最后添加如下一行:
LoadModule webapp_module modules/mod_jk2.so
    如果Apache版本是是1.3.x,添加这行:
LoadModule webapp_module libexec/mod_jk2.so
    保存修改。

    在终端里检查插件模块是否能正常加载:
[root@TFW-RFL40 apr]# cd /opt/prog/c/Apache
[root@TFW-RFL40 Apache]# ./bin/apachectl -configtest
    如果能正常加载,会出现:
Syntax OK
[root@TFW-RFL40 apr]#
    否则请检查前面是否有差错,或查找其他资料。

    打开“worker2.properties”。如果Apache版本不是2.0.49,请将其内容替换为以下21行:
[shm]
info=Scoreboard. Requried for reconfiguration and status with multiprocess servers.
file=anon
# Defines a load balancer named lb. Use even if you only have one machine.
[lb:lb]
# Example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
group=lb
# Map the Tomcat examples webapp to the Web server uri space
[uri:/examples/*]
group=lb
[status:]
info=Status worker, displays runtime information
[uri:/jkstatus/*]
info=The Tomcat /jkstatus handler
group=status:
    上述为2.0.49版Apache的“worker2.properties”内容。将上述文字置入文件时,为了便于阅读,允许用回车拉大行距。

    把那些需要对外开放的“Web应用”以“[uri:XXX/*]”形式把它们逐行添加在“# Map the Tomcat examples webapp to the Web server uri space
”下方,替代原有的“[uri:/examples/*]”,其中“XXX”为你的“Web应用”的Path。

                        11.2.3.2        Tomcat

    到Tomcat的配置文件目录“/opt/prog/m/tomcat/conf”,用文本编辑器打开“server.xml”。如果从前没有改动过这个文件,能找到这样一段,或者类似的段:
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8080" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="100" debug="0" connectionTimeout="20000"
               useURIValidationHack="false" disableUploadTimeout="true" />

    再检查一下,看是否有这段对8009端口的定义:
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8009" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="0" connectionTimeout="0"
               useURIValidationHack="false"
               protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
    连接插件“mod_jk2.so”默认使用8009端口,如果文件里没有这段,需要把它添加在上一段之前。

        11.3        联合测试

    注意,“mod_webapp.so”和“mod_jk2.so”最好不要一起用,只用其中一个。重新启动Apache和Tomcat。再用url“http://主机XXX”试试,应该一切OK了。以后做JSP开发的时候可以只用Tomcat,并且能以“http://主机:8080XXX”使用所有的Web应用。承担外界访问的时候Apache和Tomcat一起跑,外界如果从80端口访问,只能使用“httpd.conf”或“worker2.properties”里提到的Web应用。

    再改一点。打开Tomcat配置文件“server.xml”,还找这段:
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8080" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="100" debug="0" connectionTimeout="20000"
               useURIValidationHack="false" disableUploadTimeout="true" />
    很多人已经知道Tomcat的HTTP管理端口是8080,你可以把里面的“8080”改成别人不知道的,比如“8088”。不要改成已经被占用的端口。修改后你能以“http://主机:8088XXX”访问所有的“Web应用”。

    从现在起,所有非JSP的内容由Apache处理,JSP的东东都通过8008或8009端口发给Tomcat,各得其所。
[/code:1]

回复贴到 http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=91508 。不要回复本贴。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 22:18 , Processed in 0.042230 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表