`
landmine
  • 浏览: 93779 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jetty IP主机配置

阅读更多

  一个虚拟主机是一个为IP地址在DNS注册的可选择的名字。一个ip地址可以很多这样选择的名字。多址主机,是一个机器有多个网络接口,每个ip地址有一个不同的名字。这也叫做“虚拟主机“。本质上,“虚拟主机“涉及到DNS注册名字到IP地址的解析 - 多个IP地址可以解析到同一个IP地址,一个或多个IP地址可能在同一个物理机器上。Jetty用户经常想配置他们的应用程序而考虑这些不同的虚拟主机。通常是一个IP地址,有很多DNS解析的名字指向它,一个布置在上面的程序所有的名字都可以访问到它。另一种可能性就是不同的虚拟主机服务于不同的应用程序。让我们检查这种可能性。
配置虚拟主机
当我们配置一个应用程序的时候,我们可以提供一个可以访问的IP地址和名字的列表,假设我们有一个机器有如下的IP地址和DNS解析的名字:
333.444.555.666
127.0.0.1
www.blah.com
www.blah.net
www.blah.org
假设我们有一个web程序,xxx.war我们想让这个程序服务所有上面的名字和IP地址,那我们将会这样配置web应用程序:

  1. <New class="org.mortbay.jetty.webapp.WebAppContext">   
  2.       <Arg><Ref id="contexts"/></Arg>   
  3.       <Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg>   
  4.       <Arg>/xxx</Arg>   
  5.       <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>   
  6.       <Set name="VirtualHosts">   
  7.         <Array type="java.lang.String">   
  8.           <Item>333.444.555.666</Item>   
  9.           <Item>127.0.0.1</Item>   
  10.           <Item>www.blah.com</Item>   
  11.           <Item>www.blah.net</Item>   
  12.           <Item>www.blah.org</Item>   
  13.         </Array>   
  14.       </Set>   
  15. </New>  


假设我们已经配置了一监听8080端口的连接器,下面的所有地址都可以访问这个应用程序:
http://333.444.555.666:8080/xxx
http://127.0.0.1:8080/xxx
http://www.blah.com:8080/xxx
http://www.blah.net:8080/xxx
http://www.blah.org:8080/xxx

为不同的虚拟主机配置不同的程序
这个通过为每个web程序提供不同的虚拟主机列表来完成。举个例子,假设我们有个机器有如下的DNS名字和IP地址:

333.444.555.666
127.0.0.1
www.blah.com
www.blah.net
www.blah.org
777.888.888.111
www.other.com
www.other.net
www.other.org
假设我们有另一个web程序,zzz.war。我们想xxx.war还想上面的配置,但是zzz.war配置成只能从777.888.888.111, www.other.com, www.other.net 和 www.other.org来访问:

  1. <!-- webapp xxx.war -->   
  2.     <New class="org.mortbay.jetty.webapp.WebAppContext">   
  3.       <Arg><Ref id="contexts"/></Arg>   
  4.       <Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg>   
  5.       <Arg>/xxx</Arg>   
  6.       <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>   
  7.       <Set name="VirtualHosts">   
  8.         <Array type="java.lang.String">   
  9.           <Item>333.444.555.666</Item>   
  10.           <Item>127.0.0.1</Item>   
  11.           <Item>www.blah.com</Item>   
  12.           <Item>www.blah.net</Item>   
  13.           <Item>www.blah.org</Item>   
  14.         </Array>   
  15.       </Set>   
  16.     </New>   
  17.   
  18.     <!-- webapp zzz.war -->   
  19.     <New class="org.mortbay.jetty.webapp.WebAppContext">   
  20.       <Arg><Ref id="contexts"/></Arg>   
  21.       <Arg><SystemProperty name="jetty.home">/webapps/zzz.war</Arg>   
  22.       <Arg>/zzz</Arg>   
  23.       <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>   
  24.       <Set name="VirtualHosts">   
  25.         <Array type="java.lang.String">   
  26.           <Item>777.888.888.111</Item>   
  27.           <Item>www.other.com</Item>   
  28.           <Item>www.other.net</Item>   
  29.           <Item>www.other.org</Item>   
  30.         </Array>   
  31.       </Set>   
  32.     </New>  


程序仍然在下列地址可用:
http://333.444.555.666:8080/xxx
http://127.0.0.1:8080/xxx
http://www.blah.com:8080/xxx
http://www.blah.net:8080/xxx
http://www.blah.org:8080/xxx

但是现在程序zzz.war在下列地址可用:
http://777.888.888.111:8080/zzz
http://www.other.com:8080/zzz
http://www.other.net:8080/zzz
http://www.other.org:8080/zzz

为不同的虚拟主机配置不同的程序,但是有相同的上下文路径
在上面的例子中,我们不只让程序zzz.war在这些虚拟主机上可用,也同时确定了上下文路径zzz,同时我们其它的程序也是在不同的虚拟主机和不同的上下文上可用。如果我们想让这些虚拟主机使用相同的上下文改怎么办呢?非常简单, 我们仅仅需要为每个程序提供相同的上下文路径,保留以上其它定义就可以了:

  1. <New class="org.mortbay.jetty.webapp.WebAppContext">   
  2.       <Arg><Ref id="contexts"/></Arg>   
  3.       <Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg>   
  4.       *<Arg>/</Arg>*   
  5.       <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>   
  6.       <Set name="VirtualHosts">   
  7.         <Array type="java.lang.String">   
  8.           <Item>333.444.555.666</Item>   
  9.           <Item>127.0.0.1</Item>   
  10.           <Item>www.blah.com</Item>   
  11.           <Item>www.blah.net</Item>   
  12.           <Item>www.blah.org</Item>   
  13.         </Array>   
  14.       </Set>   
  15.     </New>   
  16.   
  17.     <New class="org.mortbay.jetty.webapp.WebAppContext">   
  18.       <Arg><Ref id="contexts"/></Arg>   
  19.       <Arg><SystemProperty name="jetty.home">/webapps/zzz.war</Arg>   
  20.       *<Arg>/</Arg>*   
  21.       <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>   
  22.       <Set name="VirtualHosts">   
  23.         <Array type="java.lang.String">   
  24.           <Item>777.888.888.111</Item>   
  25.           <Item>www.other.com</Item>   
  26.           <Item>www.other.net</Item>   
  27.           <Item>www.other.org</Item>   
  28.         </Array>   
  29.       </Set>   
  30.     </New>  


现在, xxx.war程序可在如下地址访问:

http://333.444.555.666:8080/
http://127.0.0.1:8080/
http://www.blah.com:8080/
http://www.blah.net:8080/
http://www.blah.org:8080/

而zzz.war程序可在如下地址访问:

http://777.888.888.111:8080/
http://www.other.com:8080/
http://www.other.net:8080/
http://www.other.org:8080/

<!-- Attachments -->
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics