免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3908 | 回复: 2
打印 上一主题 下一主题

[Web] LINUX下怎么使用APACHE转发机制实现我的功能?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-05 11:59 |只看该作者 |倒序浏览
我现在是ADSL上网,有几台机器,其中LINUX接ADSL做我的网关,我直接写了IPCHIANS,内部上网没有问题,我也申请了一个域名,由于没有固定IP只能是每次开机更新我的ADSL广域网的IP到域名服务器上。

现在的问题是我想在LINUX做我那个动态域名的WEB服务器,这点APACHE安装好就可以了,但同时我的LINUX上跑了有我WEBLOGIC的程序是JAVA的WEB程序,由于WEBLOGIC必须绑定固定IP,所以我的WEBLOGIC绑定了我的LINUX机器的内部IP :192.168.8.200.我现在在内部网访问我的WEBLOGIC程序是没有问题(用内部的固定IP),现在我想外部用我申请到的动态域名也可以访问我的WEBLOGIC程序,也就是APACHE要把对我那个动态域名的请求做转发到我的WEBLOGIC的内部IP和端口,我刚才在GOOGLE找了很久都只看到有一个固定广域网IP地址的APACHE转发机制,象我这样,只有相对固定的域名(广域网ip每次ADSL启动都会变)怎么写APACHE的转发机制,比如说我的域名是WWW.CHINA.COM ,而内部WEBLOGIC的程序绑定的IP是192.168.8.200:8001,该如何实现APACHE的转发。或者有没有其他的实现办法?

论坛徽章:
0
2 [报告]
发表于 2004-02-05 12:12 |只看该作者

LINUX下怎么使用APACHE转发机制实现我的功能??

关注,顶一下!

论坛徽章:
0
3 [报告]
发表于 2004-02-05 14:13 |只看该作者

LINUX下怎么使用APACHE转发机制实现我的功能??

这篇文章你来参考一下吧!!我以前的部署文档。


Apache 1.3.27以及WebLogic Plugin的安装及配置

一、安装Apache 1.3.27
首先安装RedHat 8.0,选择服务器安装模式,并且不选择安装Apache Web服务器,其余可以采用缺省的配置(缺省服务器安装模式不包括Gzip和Gcc软件包,请根据需要选择)。为方便配置,可以选择安装X(但其占用较多的CPU资源,在实际生产过程中,可以关闭X:Ctrl-Alt-Backspace)。
然后,安装Apache 1.3.27:

        下载apache 1.3.27:http://www.apache.org/dist/httpd/
        复制apache_1.3.27.tar.gz到 /usr/local/src 目录下
        解压缩gzip -d apache_1.3.27.tar.gz
        释放tar –xvf apache_1.3.27.tar.gz
        修改/usr/local/src/include/httpd.h:
#ifndef HARD_SERVER_LIMIT
#ifdef WIN32
#define HARD_SERVER_LIMIT 1024
#elif defined(NETWARE)
#define HARD_SERVER_LIMIT 2048
#else
#define HARD_SERVER_LIMIT 2560  <=修改处
#endif
#endif
        编译并安装apache:
在/usr/local/src/apache1.3.27目录下:
#./configure --enable-module=so --enable-rule=SHARED_CORE
#make
#make install
        启动Apache Server:在/usr/local/apache/bin下,启动键入./apachectl start,停止用./apachectl stop,重新启动用./apachectl restart。

经过以上步骤,完成Apache Web Server的安装。

二、配置Apache Web Server
1、MinSpareServers 5; MaxSpareServers 10 :
在使用子进程处理HTTP请求的Web服务器上,由于要首先生成子进程才能处理客户的请求,因此反应时间就有一点延迟。但是,Apache服务器使用了一个特殊技术来摆脱这个问题,这就是预先生成多个空余的子进程驻留在系统中,一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。在运行中随着客户请求的增多,启动的子进程会随之增多,但这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。但是空余的子进程副本不能光增加不减少,太多的空余子进程没有处理任务,也占用服务器的处理能力,因此也要限制空余副本的数量,使其保持一个合适的数量,使得既能及时回应客户请求,又能减少不必要的进程数量。
因此就可以使用参数MinSpareServers来设置最少的空余子进程数量, 以及 使用参数MaxSpareServers 来限制最多的空闲子进程数量,多余的服务器进程副本就会退出。根据服务器的实际情况来进行设置,如果服务器性能较高,并且也被频繁访问,就应该增大这两个参数的设置。对于高负载的专业网站,这两个值应该大致相同,并且等同于系统支持的最多服务器副本数量,也减少不必要的副 本退出。
一般建议这两个参数可以使用缺省配置值。

2、StartServers 5:
StartServers参数就是用来设置httpd启动时启动的子进程副本数量,这个参数与上面定义的MinSpareServers和MaxSpareServers参数相关,都是用于启动空闲子进程以提高服务器的反应速度的。这个参数应该设置为前两个值之间的一个数值,小于MinSpareServers和大于MaxS pareServers都没有意义。

3、MaxClients 800:
在另一方面,服务器的能力毕竟是有限的,不可能同时处理无限多的连接请求,因此参数Maxclients就用于规定服务器支持的最多并发访问的客户数,如果这个值设置得过大,系统在繁忙时不得不在过多的进程之间进行切换来为太多的客户进行服务,这样对每个客户的反应就会减慢,并降低了整体的效率。如果这个值设置的较小,那么系统繁忙时就会拒绝一些客户的连接请求。当服务器性能较高时,就可以适当增加这个值的设置。对于专业网站,应该使用提高服务器效率的策略,因此这个参数不能超过硬件本身的限制,如果频繁出现拒绝访问现象,就说明需要升级服务器硬件了。对于非专业网站,不太在意对客户浏览器的反应速度,或者认为反应速度较慢也比拒绝连接好,就也可以略微超过硬件条件来设置这个参数。  
根据服务器的容量进行预测设置,亦受到“HARD_SERVER_LIMIT”参数的制约,在1GB内存的服务器上一般配置为800-1000。

4、MaxRequestsPerChild 3000:
使用子进程的方式提供服务的Web服务,常用的方式是一个子进程为一次连接服务,这样造成的问题就是每次连接都需要生成、退出子进程的系统操作,使得这些额外的处理过程占据了计算机的大量处理能力。因此最好的方式是一个子进程可以为多次连接请求服务,这样就不需要这些生成、退出进程的系统消耗,Apache就采用了这样的方式,一次连接结束后,子进程并不退出,而是停留在系统中等待下一次服务请求,这样就极大的提高了性能。但由于在处理过程中子进程要不断的申请和释放内存,次数多了就会造成一 些内存垃圾,就会影响系统的稳定性,并且影响系统资源的有效利用。因此在一个副本处理过一定次数的请求之后,就可以让这个子进程副本退出,再从原始的httpd进程中重新复制一个干净的副本,这样就能提高系统的稳定性。这样,每个子进程处理服务请求次数由MaxRe questPerChild定义。 缺省的设置值为30,这个值对于具备高稳定性特点的Linux系统来讲是过于保守的设置,可以设置为1000甚至更高,设置为0支持每个副本进行无限次的服务处理。  
在solaris或一些比较容易出现内存泄露的应用上,可以设置为3000。

5、分割Apache日志:
由于缺省日志都保存在一个文件中,不便于错误查询处理及日志备份,因此需要将Apache的日志进行分割。
使用cronolog工具对Apache的日志进行分割配置:
        从http://www.cronolog.org/download/cronolog-1.6.2.tar.gz下载cronolog,解压缩后复制到Apache的Bin目录中,/usr/local/apache/bin。
        修改httpd.conf,增加如下配置:
ErrorLog "|/usr/local/apache/bin/cronolog /usr/local/apache/logs/%Y%m/%m%d_error_log"
LogFormat "%h %l %u %t \"%r\" %>;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog "|/usr/local/apache/bin/cronolog /usr/local/apache/logs/%Y%m/%m%d_access_log" combined
        重新启动Apache Web Server,可以看到这时Apache的日志将按月分开,每个月一个目录,每日生成新的日志文件。

三、WebLogic Apache Plugin的安装和配置
将WebLogic的Apache Plugin——mod_wl.so——复制到/usr/local/apache/libexec目录下,然后在httpd.conf中对这个Plugin进行配置(可以使用命令:perl APACHE_HOME/bin/apxs -i -a -n weblogic mod_wl.so进行自动配置,但是不完整,仍需手工修改httpd.conf)。
修改httpd.conf,加入如下的配置:
LoadModule weblogic_module libexec/mod_wl.so

<IfModule mod_weblogic.c>;
WebLogicHost 172.16.8.183
WebLogicPort 7001
MatchExpression *.jsp
</IfModule>;

如果转发的目标服务器是一个Cluster,使用如下的配置:
<IfModule mod_weblogic.c>;
WebLogicCluster 172.16.8.187:7001, 172.16.8.188:7001
MatchExpression *.jsp
</IfModule>;

对于Servlet的转发的配置,可以不是用将Servlet映射成.jsp的方式,只需要作简单的配置即可完成。例如:对于rhstockgraphics这个Servlet,可以使用如下的配置,即可实现转发:
<Location /rhstockgraphics>;
  SetHandler weblogic-handler
</Location>;

同理,对于需要转发的Servlet均作如上的配置,即可。
完成以上工作后,使用Apache的配置测试对配置文件进行测试:apachectl configtest。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP