不同服务器上的IIS和WebSphere不提供jsp页面

时间:2017-11-05 18:48:58

标签: java asp.net jsp iis websphere

简短背景

我们有两台服务器(Windows Server 2008)。 ServerA是IBM WebSphere Application Server,ServerB是指向ServerA上的应用程序的IIS 7 Web服务器。它目前有效。我们希望将ServerB升级到Server 2012,但无法进行就地升级,因此我们将其安装在新服务器(ServerC)上并用它替换ServerB。

我们无法使用Tomcat,并且原始设置正常工作(Internet< - > ServerB(WebServer)< - > ServerA(Application Server)。

我的问题是(所有这些都适用于我们将ServerB与ServerC交换后会发生的情况):

1)有没有办法测试网络服务器是否正确配置为websphere应用程序提供服务?我认为我最大的障碍是我们不能使用服务器机器来浏览任何站点(我相信这是一个组策略......但同样,我只是一个软件开发人员而不是对服务器配置和系统有所了解管理)。我们可以在服务器上使用的应用程序是非常有限的,但我已经看到一些关于使用Snoop的事情(我不知道如何使用,但可以发现...但我不认为我们被允许无论如何将它安装在机器上。)

2)当我导航到IIS上托管的站点,该站点指向将我重定向到Login.jsp页面的WebSphere应用程序时,为什么浏览器会尝试下载.jsp文件而不是将其显示为网页?在搜索指向WebSphere应用程序服务器的IIS上托管的站点不显示JSP页面,而是提示下载.jsp文件时,我无法找到良好的google / stackoverflow / serverfault结果。

3)当我尝试导航到IIS上托管指向WebSphere应用程序的某些站点时,为什么我会在新的IIS服务器上收到403 Access Denied错误,而不是旧服务器? Web应用程序可以访问的文件夹位于本地计算机(单独的驱动器号)和WebSphere应用程序服务器上。新服务器上的所有本地文件夹的配置方式与旧服务器上的相同,并且所有本地用户和组的设置都相同。

设置信息(更详细)

在这部分中,我想展示我们的设置:我们有两台服务器(Windows Server 2008)。 ServerA是IBM WebSphere Application Server,ServerB是IIS 7 Web服务器。在我的组织(包括我自己)工作的任何人开始之前,此设置已经存在。在IIS上配置/设置了7个具有虚拟路径的站点(即,该站点名为www.site_name.ourorg.domain)。我们在每个站点的外向NIC上配置了IP地址,每个站点都绑定了其特定的IP地址,端口80和端口443(带有效证书)和它们自己的应用程序池。我们无权配置域控制器(我们获得使用的IP以及不同组织的某个人管理我们的域服务器)。所有这些网站目前都在生产和使用中。

目标

我们的目标是建立一个新的Windows Server 2012网络服务器(以及最终的应用服务器)。遗憾的是,我们无法进行就地升级,因此我们的系统管理员决定最好的方法是设置新服务器(ServerC),干净安装Windows Server 2012,使用相同的功能和角色安装IIS7在ServerB上,安装IBM WebSphere Plugins并使用相同的plugin-cfg.xml文件。 (稍后,当失败时,我们重新安装了WebSphere Plugins以及配置工具,并根据下面提到的WebSphere站点中的说明使用它来创建新配置。)然后,一旦安装并且所有内容都配置好了同样,禁用现有Web服务器(ServerB)上面向外部的NIC,将其重命名(因为我们使用Active Directory)到新名称(ServerB-o),将ServerC重命名为ServerB,并在ServerC上启用NIC(现在称为ServerB) )使用与旧ServerB(ServerB-o)相同的IP和配置。

问题

在我们完成所有这些之后,我们可以访问IIS(默认页面,在测试后将被禁用),看起来指向WebSphere的站点正在响应请求,但我们遇到了两个问题:

1)部分网站正在返回403拒绝访问;应用程序池作为ApplicationPoolIdentity运行,所有ApplicationPools(IIS APPPOOL \ www.site_name.ourorg.domain)都添加到IUSR组。一个特点是当我们设置sePlugins虚拟文件夹(例如)并选择" Connect As ..."时,我们不能使用。\ localadmin和localadmin(两者都是网络服务器上的管理员用户)。它告诉我们帐户名或密码不正确。但是,旧服务器配置如下。

2)对于没有给出403错误的任何站点,浏览器提示下载.jsp文件,而不是显示已翻译的.jsp页面。

其他信息和尝试

尝试多次更改IIS和WebSphere插件上的配置后,使用服务帐户(在我们的AD上)而不是。\ localadmin,以及几天的研究,我意识到我对此不太了解如何配置服务器,尤其是在此设置中,以获得更多帮助。我们可以反过来(在新的ServerB上禁用NIC,将其重命名为ServerC,将ServerB-o重命名为ServerB,并重新启用NIC),这些站点会在15分钟到3小时之间恢复。 。

我只记得有一个部分我必须比较ApplicationHost.config文件,发现ISAPI过滤器没有在新服务器上正确设置,但我很确定我在新IIS上配置的所有内容都相同就像在旧的IIS上一样。唯一没有安装的是HipIISEngineStub.dll,它看起来像是与McAfee相关的dll(主机入侵防御)。它位于旧的网络服务器上,但不是新的。

我们已经尝试过三次站在新服务器上,并且我在每个问题之间做了更多的研究,并且能够解决所有问题但是这个问题。每当我们尝试站起来使用新服务器时,我们都必须在当天的剩余时间内停止生产,因此我希望能够找到一种方法来测试它而不会降低生产效率。

再注意

最后一点是我能够做的最新事情是在ServerC上设置配置,禁用面向外部的NIC,使用相同的物理路径和配置设置创建新站点,除了它绑定所有未分配的IP地址和未使用的端口(例如,比如说11111)到其中一个应用程序。我向其添加了sePlugins虚拟目录,并通过转到https://ServerC:11111从同一域上的另一个工作站对其进行了测试。这成功地将我重定向到https://www.site_name.ourorg.domain/app_sub/Login.jsp< - 由旧机器提供服务。除了新的IIS能够读取配置文件并执行适当的重定向步骤之外,我真的不知道这个测试意味着什么。

资源

在新的Web服务器上安装WebSphere时,我按照IBM's Site中的步骤进行操作。

我已经看到了其他问题的无数资源,例如将AppPools添加到IUSR组,配置应用程序池以作为特定标识运行,如何在NIC上拥有多个IP并将它们绑定到站点在IIS工作,以及其他方式的sys管理员我不熟悉的东西,也没有完全掌握。

我非常感谢使用WebSphere将新服务器设置为正确服务器jsp页面的任何帮助。即使您有资源在新计算机上完全卸载并重新安装WebSphere。我对在WebSphere Application Server本身上进行任何配置更改犹豫不决,因为我们可以轻松地回滚到使用旧的Web服务器并且站点重新启动。但是,如果问题出在那里,我愿意接受建议。

1 个答案:

答案 0 :(得分:0)

我再一次为发布一个似乎范围太大的问题而道歉。我能够与IBM支持人员取得联系。简短的回答是,虽然我有许多其他配置问题,但有两个主要项目阻止我成功提供网站。

首先,我只安装了应用程序服务器(基本安装)而不是Network Deployment安装。这意味着需要更多步骤,以便应用程序服务器为Web服务器提供多个应用程序。通过执行this tech note中的步骤解决了这个问题。它涉及在Web服务器上为每个WebSphere应用程序设置一个plugin_root \ bin \ AppName和一个plugin_root \ config \ AppName文件夹(以及可选地在日志文件夹中);以及修改每个特定应用程序的配置文件(plugin_root \ bin \ plugin-cfg.loc和plugin_root \ config \ plugin-cfg.xml)。然后,我需要在服务器级别(在IIS管理器中)删除ISAPI筛选器条目,并将条目添加到每个站点的ISAPI筛选器。我还需要更改sePlugins虚拟文件夹中Handlers Mappings的权限,以允许Read和Execute(403错误的主要原因之一)。

第二个问题是我需要使用管理控制台将我用于测试站点的端口添加到虚拟主机列表,重新生成插件,并将它们复制到Web服务器(到相应的文件夹)。

在完成所有操作(并获取服务器的快照)之后,我卸载了所有内容并使用我的问题的资源部分中列出的说明重新安装了WebSphere,除了我使用Network Deployment安装安装和配置它。这意味着我可以在IIS管理器中的服务器级别设置ISAPI筛选器,并且有一个文件夹来保存iisWASPlugin文件以及关联的loc,config和日志文件。事实证明,我需要将每个应用程序的sePlugins文件夹的Handler Mappings中的权限设置为Read,Script和Execute(只有Script和Execute对我们的设置不起作用),以及确保端口已添加到虚拟主机列表中(因此将它们添加到配置文件中)。

我希望这有助于将来的某些人。