多种动态网页技术下WEB服务器的配置及整合研究

2014-04-10 19:44胥献伟
四川文理学院学报 2014年5期
关键词:应用程序端口站点

胥献伟,付 蝶

(1.四川文理学院 网络管理中心,四川 达州635000;2.成都理工大学 信息科学与技术学院,四川 成都610000)

0 引言

现今很多大型企事业单位都有自己独立的网站,往往就会出现技术人员采用不同的脚本语言编写网站程序,每一类脚本语言至少需要一台WEB服务器,并且每一台服务器还需要一个公网IP地址,这样既增加了设备投入,还浪费了IP资源,并且也不方便管理.笔者根据多年来对 WEN站点的管理,拟就WEB服务器对各种动态技术站点的配置及资源整合进行研究.

1 几种常见的脚本语言

ASP是微软公司开发的代替CGI脚本程序的一种应用脚本语言,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具.网页文件的格式是.asp,常用于各种动态网站中.

ASP.NET不仅仅是ASP的下一个版本,它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级 Web应用程序所需的各种服务.ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护.是一个已编译的、基于.NET环境,可以用任何与.NET兼容的语言(包括Visual Basic.NET、C# 和JScript.NET.)创作应用程序.任何ASP.NET应用程序都可以使用整个.NET Framework,网页文件后缀名为.aspx.

PHP是一种通用开源脚本语言.语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域,PHP的文件后缀名为.php.

JSP是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准.它是在传统的网页HTML文件中插入Scriptlet和JSP标记tag,从而形成JSP文件,后缀名为.jsp.用JSP开发的Web应用是跨平台的,既能在Windows下运行,也能在Linux等操作系统上运行.

2 各脚本语言站点的配置及整合

2.1 asp站点配置

打开Internet信息服务(IIS)管理器,必须先允许“WEB服务扩展”里已知的扩展,因为 WEB服务扩展起到了从根本上控制脚本运行的作用.再新建网站,输入网站描述,设置网站IP(选择本机IP如:192.168.1.20)、端口:80、主机头(此处不设置)、网页文件存放位置,允许“读取、运行脚本(如asp)”.打开站点属性,在 “网站”选项卡添加网站标识(如www.a.com)以及设置好 W3C日志选项和保存位置;勾选“主目录”选项卡“启用父路径”;在 “文档”选项卡“添加”默认文档(如:index.asp),删除多余的文档.

2.2 ASP站点与PHP站点整合

下载并解压PHP5.2及以上版本,复制到X:\php目录下;将 php.ini-dist重命名为 php.ini,打开 php.ini文件,找到:extension_dir= "./",修改为:extension_dir="X:\php\ext";在 Windows Extensions下方的动态模块配置中,需要打开以下模块支持(去掉模块配置每行前面的;号即可)php_gd2.dll,php_mbstring.dll,php_mssql.dll,php_mysql.dll,php_sockets.dll,php_sqlite.dll,php_pdo.dll,保存 php.ini文件,并将php.ini、php.exe复制到 C:\Windows\;将PHP目录下所有DLL文件复制到C:\Windows\system32下,不要覆盖已有文件.在与ASP整合的过程中,同样要先设置支持PHP的“WEB服务扩展”,“新建 WEB服务扩展”对话框中,"扩展名"填写PHP,"文件"选择 X:\php\php5isapi.dll,并设置该PHP扩展默认为允许.再到“ASP网站”的属性中的“主目录”标签下的应用程序配置,添加扩展名为“.PHP”的可执行文件 X:\php\php5isapi.dll,全部动作.然后在“文档”标签添加一个PHP的默认文档(如:index.php).最后,为了方便识别,可把网站标识改为“ASP+PHP网站”.此时,该站点既支持ASP,又支持PHP了.

2.3 ASP+PHP+ASP.net站点整合

由于ASP.net在语法上和ASP兼容,决定了它们建立的站点在配置方面的相似性及一定的通用性.然而它又提供了一个统一的 Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务.所以决定了asp.net站点必须在现有的ASP站点上扩展其应用程序.配置asp.net站点前应先确定.NET Framework的版本,若是4.0及以上版本,需要安装 WIC(Windows Imaging Component的缩写)图像组件,它是.NET Framework的影像元件,再安装.NET Framework,低于4.0的版本不需要安装此组件.安装完成后,就会在IIS的WEB服务扩展里看到已被允许的ASP.NET扩展.此时整合 ASP+PHP+ASP.NET站点,需要修改“ASP+PHP网站”站点以下几个地方:一是修改ASP.NET版本,二是添加一个 ASP.NET 的默认文档(如:index.aspx),三是看“主目录”标签里是否添加了扩展名为“.aspx”的应用程序,若没有,则选择.NET Framework安装目录下的spnet_isapi.dll文件,设置扩展名“.aspx”且全部动作.此时,该站点既支持ASP,又支持PHP.还支持ASP.NET.

2.4 ASP+ASP.net+PHP+JSP站点的整合方式

整合方式有两种.第一种方式是IIS+Tomcat整合,四种脚本语言都可在一个站点解析.第二种方式采用 Apache+IIS+Tomcat,ASP、PHP、ASP.NET相关的站点通过Apache+IIS实现,JSP通过Apache+Tomcat实现.在介绍这两个整合方式之前,先介绍Apache和Tomcat:

Apache是Apache软件基金会的一个开放源码的网页服务器,它可以运行在几乎所有广泛使用的计算机平台上,由于其多平台和安全性被广泛使用,是最流行的 Web服务器端软件之一.它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中.Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用.[1]

Tomcat服务器是一个免费的开放源代码的Web服务器.在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选.因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能.[2]

2.4.1 IIS+Tomcat整合

第一步:安装JDK、Tomcat,设置好JDK和Tomcat的环境变量,并需测试JDK和Tomcat是否安装成功.

第二步:JK2,因为用户在访问JSP站点时,是先在IIS中把JSP的相关请求发送到Tomcat,Tomcat需要Tomcat Connector的支持,此时,JK2就负责IIS和Tomcat的通讯.解压后找到bin目录中的isapi_redirector2.dll文件,放入Tomcat下的新建目录IIS中.

第三步:在IIS目录下建一个IIS.reg的注册表文件,目的在于把isapi_redirector2.dll注册到系统文件里去,内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector]

[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\2.0]

"serverRoot"="X:\Tomcat5"

"extensionUri"="/jakarta/isapi_redirector2.dll"

"workersFile"="X:\Tomcat\conf\workers2.properties"

"logLevel"="DEBUG"

第四步:要在conf目录建一个jk2.properties文件和一个 workers2.properties文件.jk2.properties文件的内容为request.tomcatAuthentication=false,意思是request的请求在tomcat服务器不需要验证.workers2.properties文件主要作用在于URL过滤,当请求的文件后缀带有“.JSP或.DO”的时候,交由Tomcat去代理.workers2.properties文件应包含以下内容:

[shm]

file=X:/Tomcat/logs/jk2.log # 日志文件的存放位置

size=1048576 #日志文件的大小

#实际运用中,需要把Localhost和8009换成自己的IP及端口.

[channel.socket:localhost:8009]

port=8009

host=localhost

#define the worker

[ajp13:localhost:8009]

channel=channel.socket:localhost:8009

#Uri mapping

[uri:/*.jsp]

[uri:/*.do]

worker=ajp13:localhost:8009

#define the worker

[status:status]

#Uri mapping

[uri:/jkstatus/*]

worker=status:status

第五步:若含有多个JSP站点,需要修改Tomcat中conf文件夹下的swever.xml文件,需要增加不同的主机头,如下:

<Host name="www.test.com"appBase="X:\Tomcat\webapps\test"……>

</Host>

< Host name="www.test1.com"appBase="X:\Tomcat\webapps\test1"….></Host>….

在整合的过程中,先要为JSP站点配置添加一个ISAP筛选器,筛选器的名称一定要写成jakarta,可执行文件选择IIS目录下的isapi_redirector2.dll文件.重启IIS,会发现ISAP筛选器变成一个绿色箭头.然后配置虚拟目录,这里需要配置两个虚拟目录:一个是筛选器目录,别名输入jakarta,位置选择存入isapi_redirector2.dll文件的IIS目录,并且权限允许执行如ISAPI应用和CGI;另一个是网站虚拟目录test.位置选择存放网站的目录,并且权限允许执行如ISAPI应用和CGI,再打开新建的虚拟目录test的属性,在虚拟目录的配置中,添加扩展名为“.JSP”的映射,可执行文件为isapi_redirector2.dll.最后是测试,如果http://www.test.com:8080/test/index.jsp 和http://www.test.com/test/index.jsp 能 正 常 打开且一致相同,说明整合成功了.

2.4.2 采用 Apache+IIS+Tomcat整合 ASP、PHP、ASP.NET、JSP

Apache与IIS的默认端口都是80,一起安装时容易造成冲突,由于这种整合方式是以Apache作为代理服务器,所以,在安装Apache的时候,先更改所有IIS站点的默认端口(如:8088),让Apache独占80端口.整合步骤如下:

第一步:同上一种方式一样,先安装各软件,并测试安装成功.

第二步:备份Apache下conf目录下的httpd.conf文件,防止在配置失败时,可还原apache

第三步:更改IIS站点的端口(如www.myweb.com 8088).

第四步:下载 mod_jk模块文件 mod_jk-1.2.28-httpd-2.0.52.so,更 名 为 mod_jk.so,放 在modules目录.由于tomcat的HTTP处理部分都由Java所写,在高并发的情况下负载较高.而apache对于静态文件的处理能力比tomcat强,所以tomcat开发组开发了与apache结合使用的mod_jk模块.该协议由apache作请求代理,将HTTP协议的请求转化为AJP协议包,并传给后端的tomcat.mod_jk和apache.除了性能的提升,mod_jk另外的一个作用可以实现apache与tomcat一对多的对应,使后端tomcat负载均衡,mod_jk也提供apache与tomcat链接情况的监控.[3]

第五步:在Tomcat下的conf文件夹下新建workers.properties文件,内容如下:

workers.tomcat_home=X:\Tomcat 5.5

#让mod_jk模块知道Tomcat的位置

workers.java_home=X:\Java\jre1.5.0

#让mod_jk模块知道jre的位置

ps=\

worker.list=ajp13w #版本

worker.ajp13w.type=ajp13 #类型

worker.ajp13w.port=8009 #端口

worker.ajp13w.host=localhost #若 A-pache主机不为localhost,作相应修改

worker.ajp13w.lbfactor=1 #代理数[4]

第六步:修改httpd.conf文件,先去掉Name-VirtualHost*:80前的“;”表示允许通过80端口建立Apache的虚拟主机.添加通过IIS访问的ASP、PHP、ASP.NET网站的虚拟主机内容如下:

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule rewrite_module modules/mod_rewrite.so

<VirtualHost*:80>

ProxyPreserveHost On

ServerAdmin1@myweb.com #虚拟主机的Email

ServerNamewww.myweb.com #虚拟主机的域名

RewriteEngine On

DocumentRoot"d:\baidu.com"#虚拟主机的网站存放位置

DirectoryIndex index.html index.htm index.asp

ProxyPass/http://localhost:8088/ # 将一个远端服务器映射到本地服务器的URL空间中

ProxyPassReverse/http://192.168.1.20;8088/ #调整由反向代理服务器发送的HTTP回应头中的URL

</VirtualHost>

通过Tomcat访问的虚拟主机内容如下:LoadModule jk_module modules/mod_jk.so

JkWorkersFile"D:\ftp\LocalUser\Tomcat\conf\workers.properties"

<VirtualHost*:80>

ServerAdmin1@ myweb1.com

ServerName www.myweb1.com #虚拟主机的域名

Directory Index index.html index.htm index.jsp

JkMount/*ajp13

JkMount/*.jsp ajp13 JkMount/*.do ajp13 JkAutoAlias"X:\Tomcat\webapps\myweb1"#绝对路径

<Directory"X:\Tomcat\webapps\myweb1">

……

</Directory>

</VirtualHost>

若有第二个虚拟主机,可重复<VirtualHost*:80>…….</VirtualHost>之间的内容,修改相应的域名及路径.这里需要注意的是,修改完httpd.conf后,需要重启Apache服务.

第七步:多个JSP站点,需要修改Tomcat中conf文件夹下的swever.xml文件,需要增加不同的主机头,如下:

<Host name="www.myweb1.com"app-Base="X:\Tomcat\webapps\myweb1"……>

</Host>

<Host name="www.myweb2.com"app-Base="X:\Tomcat\webapps myweb2"….>

</Host>

….

修改完swever.xml文件,同样需要重新启动Tomcat服务.

3 结束语

在多种动态网页技术下WEB服务器的配置及整合过程中,IIS+Tomcat和Apache+IIS+Tomcatp实现ASP+PHP+ASP.NET+JSP的整合是一个难点,需要配置人员特别注意的是:如路径的斜杠方向、配置的先后顺序、什么时候重启IIS或Apache或Tomcat服务、是否有多余的字符、是否每一步重要的操作都做好了相关记录,这些都显得尤为重要.对于每个WEB服务器管理人员来说,站点配置属于基本技能,而WEB服务器的日常管理更为重要.因此,做好各项安全策略,时常检查服务器的数据是否完整、安全,防患于未然.

[1]张斌贝,张文学.Apache Web Sewer安全配置和维护[J].甘肃科技,2004(9):45.

[2]陈文超.浅析Tomcat Web服务器基于 Apache的集群与负载均衡[J].科技资讯,2012(6):29.

[3]乐 挺.Tomcat和ISS的 Web服务器集成研究[J].电脑知识与技术,2008(36):2762.

[4]郝海峰,徐海峰,叶 俊.基于windows平台的JSP WEB服务器的架设[J].计算机与数字工程,2007(8):69.

猜你喜欢
应用程序端口站点
一种端口故障的解决方案
删除Win10中自带的应用程序
基于Web站点的SQL注入分析与防范
2017~2018年冬季西北地区某站点流感流行特征分析
谷歌禁止加密货币应用程序
端口阻塞与优先级
首届欧洲自行车共享站点协商会召开
怕被人认出
8端口IO-Link参考设计套件加快开发速度
卫星三端口DC-DC变换器技术综述