热点推荐
ZOL首页 > 服务器 > 知识学堂 > Web > 摆脱服务器数量增加向Linux大型机迁移

摆脱服务器数量增加向Linux大型机迁移


【转载】 2009年04月27日 15:14

在大型机上运行 Linux 可以节省费用—但这只有在选择正确的应用程序和制定周密的前期计划的情况下!
  在大型机上运行 Linux 可以增加应用程序的正常运行时间,减少支持费用,然而,用户和分析人士建议,选择哪种应用迁移到这种开放源代码操作系统上以及培训人员掌握所需技能时需要谨慎行事。
  用户认为,大型机上运行 Linux 的吸引力与较低的 Linux 许可费或用户可以修改它并及时修补隐患并没有太大关系,相反,把 Linux 与大型机的可靠性、速度结合在一起以减少运行关键应用的费用的能力才是最诱人之处。
  事实上,用户一直在强调:我们对仅仅获得市场上最便宜的东西不感兴趣,我们需要可靠性高、功能强大并且厂商能提供很好服务的东西!

  击中最有效的击球点
  目前,在大型机上运行 Linux 的最有效的“击球点 (sweet spot)”是服务器整合:利用大型机上的分区替代数十、甚至数百台独立的基于 Intel 的 Linux 或 Windows 服务器。大型机分区把处理器内存和其他系统资源专用于运行 Linux。
  例如,WPS 公司创建了一个运行在一台 IBM eServer zSeries 900 大型机内的一个 250-MIPS 处理器上的虚拟 Linux 服务器,这样做的费用是订购、安装和配置一台新 Intel 服务器费用的 40%。一台虚拟服务器可以在两三分钟内创建,并可以提供9倍于独立服务器的吞吐量。身为长期大型机用户的 WPS 公司把在大型机上运行 Linux 当做一种利用大型机的可靠性和降低支持费用的途径。
  许多观察家认为,用户在考虑整合到大型机 Linux 环境前,应当至少拥有 20 到 25 台服务器。一些进行整合的最佳候选者是基础设施应用,如文件与打印服务、电子邮件、域名服务器和 Apache 这样的 Web 服务器。
  不过,并不是每一种应用程序都是大型机 Linux 的天然候选者。Windows 应用程序就是不佳的选择,因为它们不能在 Linux 上运行,尽管在许多情况下可以使用同等的 Linux 应用程序。具有复杂的用户界面的应用程序或执行复杂的数据分析的应用程序会消耗大量的处理能力,因此让它们仍运行在独立服务器上性价比更高。
  用户也不愿意把复杂的应用程序(如可能需要几年时间才能部署到分布式服务器上的 SAP R/3)迁移到新环境上。
  一旦确定了要在大型机上运行的应用程序,用户和分析员建议首先把它们迁移到运行 Linux 的独立服务器上。他们说,在应付大型机带来的额外的复杂性之前,让支持人员熟悉 Linux 是一种很好的作法。

  选择 Linux
  用户和分析人士认为,选择用于大型机的 Linux 版本十分重要。Giga Information Group 公司分析员说,目前很多用户使用 SuSE 软件。例如,WPS 选择了 SuSE Linux,理由是他们拥有一个支持焦点,通过 IBM 来支持 z/VM 以及 Linux 环境。不过, SuSE 的垄断也许不会长久,因为 Red Hat 在 2002 年下半年改善了其与 IBM 在大型机支持上的关系。
  选择大型机操作系统也会造成巨大的差异。用户可以在 IBM 较老的 32 位大型机 OS/390 操作系统上以本机模式运行 Linux,可以为分配应用程序调用分区内的资源的优先次序。而 IBM 公司 zSeries 大型机产品营销经理 Peter McCaffrey 说,IBM 最新的大型机操作系统 z/OS 支持吞吐量更大的 64 位处理,使 IT 经理可以跨多个分区分配应用的优先次序。
  专家建议说,希望把数百个独立服务器整合到大型机 Linux 上的用户应当考虑计划部署 IBM 的 z/VM。z/VM 使用户可以在每个分区内创建几百个虚拟 Linux 机。如果没有 z/VM,用户局限于创建 15 个虚拟 Linux 机,每个分区一个。
  在大型机上运行 Linux 并不适合于每一种应用或每一位用户。不过,分析人士认为,受服务器数量增加之苦越深,就越应当考虑使用大型机运行 Linux 的模式。

[#page_#][#page_#]

重启机器看tomcat是否可以自动启动了。

2.2.2 使用jsvc,增加安全性

方法2.2.1有一个严重的问题,那就是tomcat具有root权限。我意味着你的任何一个jsp脚本都具有root权限,所以可以轻易地用jsp脚本删除你整个硬盘里的东西!所以我们最好不要使用2.2.1方法。

我们下载的jakarta-tomcat-5.0.28.tar.gz带有jsvc工具,在压缩包里的jakarta-tomcat- 5.0.28/bin/jsvc.tar.gz,如果你按上面的步骤做了,它就在 /usr/share/tomcat5/bin/jsvc.tar.gz,把其解压,得到/usr/share/tomcat5/bin/jsvc- src文件夹。在终端运行:

/usr/share/tomcat5/bin/jsvc-src/configure --with-java=/usr/lib/j2sdk1.4-sun

make

得到/usr/share/tomcat5/bin/jsvc-src/jsvc文件。把/usr/share/tomcat5/bin/jsvc- src/native/tomcat5.sh脚本文件拷贝到/etc/init.d下,再使用2.2.1中的的半部分方法把tomcat设置为自启动。

/etc/init.d/tomcat5.sh还需要修改,使其看起来像:

JAVA_HOME=/usr/lib/j2sdk1.4-sun

CATALINA_HOME=/usr/share/tomcat5

DAEMON_HOME=/usr/share/tomcat5

TOMCAT_USER=tomcat5 #这里改为一个普通身份的用户名

TMP_DIR=/var/tmp

CATALINA_OPTS=

CLASSPATH=

\$JAVA_HOME/lib/tools.jar:

\$CATALINA_HOME/bin/commons-daemon.jar:

\$CATALINA_HOME/bin/bootstrap.jar

case "\$1" in

start)

#

# Start Tomcat

#

\$DAEMON_HOME/bin/jsvc-src/jsvc

......

先不要重启试验,请手动运行/etc/init.d/tomcat5.sh start,然后在浏览器中输入http://localhost:8080或者http://127.0.0.1:8080看tomcat是否能够启动,再运行/etc/init.d/tomcat5.sh stop看是否能停止。

问题:无法用jsvc启动tomcat?

在http: //jakarta.apache.org/commons/daemon/faq.html有说明。如果你使用Debian,运行modconf然后把 /kernel/security下的capability模块安装上。如果你使用其它的版本,并且把capability编绎为模块,请在 /etc/init.d/tomcat5.sh的合适位置(你想使用第2行?)加上modprobe capability。

3,设置tomcat的server.xml布署网站

如果你想让别人在浏览器中输入你的IP而不需要在IP后面加上“:端口号”就能访问你的网站的话,请把。

<Connector port="8080"	maxThreads="150" minSpareThreads="25" maxSpareThreads="75"	enableLookups="false" redirectPort="8443" acceptCount="100"	debug="0" connectionTimeout="20000"	disableUploadTimeout="true" />中的port="8080"改为port="80",因为80是浏览器请求的默认端口。找到 <Host name="localhost" debug="0" appBase="webapps"	unpackWARs="true" autoDeploy="true"	xmlValidation="false" xmlNamespaceAware="false">

修改为使appBase="/home/tomcatweb"

并在其后面加上:

英文代码

把你自己的index.jsp放在/home/tomcatweb目录下,然后在浏览器中输入http://127.0.0.1,你应该就能看到index.jsp的运行结果了。

4,中文问题

tomcat并没有特殊的中文问题。而且大部分情况下的中文问题是因为用户根本就不会写JSP代码,甚至不会写HTML代码。

4.1 简单HTML文件的乱码问题

一个HTML文件,里面包含有中文文字,如:

[#page_#]

上面的标签告诉浏览器你的HTML文件使用的是UTF-8编码格式。请把UTF-8正确地设置为你的文本编辑器保存时的编码,否则,只有全英文HTML源码文件才能保证不出现乱码。

4.2 简单的JSP文件的乱码问题

一个JSP文件,里面包含有中文文字,如:

<%@ page contentType="text/html; charset=UTF-8" %><html><head>	<meta http-equiv="content-type" content="text/html; charset=UTF-8" /></head><%	out.println("你好。");%></html>

<%@ page contentType="text/html; charset=UTF-8" %>标签告诉tomcat和java编绎器你的文件的编码是UTF-8格式的。

4.3 被包含的文件的内容是乱码

如果你的parent.jsp文件中使用<jsp:include page="child.jsp" />文件包含了child.jsp,请在parent.jsp和child.jsp文件中都指定了正确的<%@ page contentType="text/html; charset=UTF-8" %>(改UTF-8为正确的编码),两者可以不一样。 如果你的parent.jsp文件中使用<%@ include file="child.jsp" %>文件包含了child.jsp,请保证parent.jsp和child.jsp是相同的编码,并且在parent.jsp中设置了正确的 <%@ page contentType="text/html; charset=UTF-8" %>(改UTF-8为正确的编码)。不要在child.jsp中设置<%@ page contentType="text/html; charset=UTF-8" %>,否则,tomcat会出错(不总是)。

4.4 POST方法的乱码

在request.getParameter();之前运行request.setCharacterEncoding("UTF-8");,其中UTF-8是你的jsp文件编码。

4.5 使用javaIO读取的文件是乱码

请重写你的函数,而不是试图更改tomcat的设置。

原文链接:http://www.ideawu.net/tomcatinstall.html

给文章打分 5分为满分(共0人参与) 查看排行>>
频道热词:LED照明  工作站  云计算  
视觉焦点
服务器知识学堂热点
排行 文章标题
TOP10周热门服务器排行榜
  • 热门
  • 新品
  • 系列
查看完整榜单>>