科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux:Tomcat配置技巧详解分析(2)

Linux:Tomcat配置技巧详解分析(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

大多数商业化的J2EE服务器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面。Tomcat按照自己的方式,同样提供一个成熟的管理工具

作者:赛迪网 来源:赛迪网 2007年8月30日

关键字: 分析 配置 Tomcat Linux

  • 评论
  • 分享微博
  • 分享邮件
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>
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章