JAVA基础:Tomcat的配置技巧精华详解

发表于:2008-12-18 14:39

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

分享:

  4、配置虚拟主机(Virtual Hosts)

  关于server.xml中“Host”这个元素,只有在你设置虚拟主机的才需要修改。虚拟主机是一种在一个web服务器上服务多个域名的机制,对每个域名而言,都好象独享了整个主机。实际上,大多数的小型商务网站都是采用虚拟主机实现的,这主要是因为虚拟主机能直接连接到Internet并提供相应的带宽,以保障合理的访问响应速度,另外虚拟主机还能提供一个稳定的固定IP。

  基于名字的虚拟主机可以被建立在任何web服务器上,建立的方法就是通过在域名服务器(DNS)上建立IP地址的别名,并且告诉web服务器把去往不同域名的请求分发到相应的网页目录。因为这篇文章主要是讲Tomcat,我们不准备介绍在各种操作系统上设置DNS的方法,如果你在这方面需要帮助,请参考《DNS and Bind》一书,作者是Paul Albitz and Cricket Liu (O'Reilly)。为了示范方便,我将使用一个静态的主机文件,因为这是测试别名最简单的方法。

  在Tomcat中使用虚拟主机,你需要设置DNS或主机数据。为了测试,为本地IP设置一个IP别名就足够了,接下来,你需要在server.xml中添加几行内容,如下:

  <Server port="8005"

  shutdown="SHUTDOWN" debug="0">

  <Service name="Tomcat-Standalone">

  <Connector className=

  "org.apache.coyote.tomcat4.CoyoteConnector"

  port="8080"

  minProcessors="5" maxProcessors="75"

  enableLookups="true"

  redirectPort="8443"/>

  <Connector className=

  "org.apache.coyote.tomcat4.CoyoteConnector"

  port="8443" minProcessors="5"

  maxProcessors="75"

  acceptCount="10" debug="0"

  scheme="https" secure="true"/>

  <Factory className="org.apache.coyote.

  tomcat4.CoyoteServerSocketFactory"

  clientAuth="false" protocol="TLS" />

  </Connector>

  <Engine name="Standalone"

  defaultHost="localhost" debug="0">

  <!-- This Host is the default Host -->

  <Host name="localhost"

  debug="0" appBase="webapps"

  unpackWARs="true" autoDeploy="true">

  <Context path="" docBase="ROOT" debug="0"/>

  <Context path="/orders"

  docBase="/home/ian/orders" debug="0"

  reloadable="true" crossContext="true">

  </Context>

  </Host>

  <!-- This Host is the first

  "Virtual Host": http://www.example.com/ -->

  <Host name="www.example.com"

  appBase="/home/example/webapp">

  <Context path="" docBase="."/>

  </Host>

  </Engine>

  </Service>

  </Server>

  Tomcat的server.xml文件,在初始状态下,只包括一个虚拟主机,但是它容易被扩充到支持多个虚拟主机。在前面的例子中展示的是一个简单的 server.xml版本,其中粗体部分就是用于添加一个虚拟主机。每一个Host元素必须包括一个或多个context元素,所包含的context元素中必须有一个是默认的context,这个默认的context的显示路径应该为空(例如,path=””)。

  5、配置基础验证(Basic Authentication)

  容器管理验证方法控制着当用户访问受保护的web应用资源时,如何进行用户的身份鉴别。当一个web应用使用了Basic Authentication(BASIC参数在web.xml文件中auto-method元素中设置),而有用户访问受保护的web应用时,Tomcat将通过HTTP Basic Authentication方式,弹出一个对话框,要求用户输入用户名和密码。在这种验证方法中,所有密码将被以64位的编码方式在网络上传输。

  注意:使用Basic Authentication通过被认为是不安全的,因为它没有强健的加密方法,除非在客户端和服务器端都使用HTTPS或者其他密码加密码方式(比如,在一个虚拟私人网络中)。若没有额外的加密方法,网络管理员将能够截获(或滥用)用户的密码。

  但是,如果你是刚开始使用 Tomcat,或者你想在你的web应用中测试一下基于容器的安全管理,Basic Authentication还是非常易于设置和使用的。只需要添加<security-constraint>和<login-config>两个元素到你的web应用的web.xml文件中,并且在CATALINA_BASE/conf/tomcat-users.xml文件中添加适当的<role>和<user>即可,然后重新启动Tomcat。

  下面例子中的web.xml摘自一个俱乐部会员网站系统,该系统中只有member目录被保护起来,并使用Basic Authentication进行身份验证。请注意,这种方式将有效的代替Apache web服务器中的.htaccess文件。

  <!--

  Define the

  Members-only area,

  by defining

  a "Security Constraint"

  on this Application, and

  mapping it to the

  subdirectory (URL) that we want

  to restrict.

  -->

  <security-constraint>

  <web-resource-collection>

  <web-resource-name>

  Entire Application

  </web-resource-name>

  <url-pattern>/members/*</url-pattern>

  </web-resource-collection>

  <auth-constraint>

  <role-name>member</role-name>

  </auth-constraint>

  </security-constraint>

  <!-- Define the Login

  Configuration for

  this Application -->

  <login-config>

  <auth-method>BASIC</auth-method>

  <realm-name>My Club

  Members-only Area</realm-name>

  </login-config>

42/4<1234>
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号