设为首页 收藏本站
查看: 662|回复: 0

[经验分享] jetty IP主机配置

[复制链接]

尚未签到

发表于 2017-2-26 10:52:07 | 显示全部楼层 |阅读模式
  一个虚拟主机是一个为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应用程序:
view plaincopy to clipboardprint?


  • <New class="org.mortbay.jetty.webapp.WebAppContext">   
  •       <Arg><Ref id="contexts"/></Arg>   
  •       <Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg>   
  •       <Arg>/xxx</Arg>   
  •       <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>   
  •       <Set name="VirtualHosts">   
  •         <Array type="java.lang.String">   
  •           <Item>333.444.555.666</Item>   
  •           <Item>127.0.0.1</Item>   
  •           <Item>www.blah.com</Item>   
  •           <Item>www.blah.net</Item>   
  •           <Item>www.blah.org</Item>   
  •         </Array>   
  •       </Set>   
  • </New>  

  <New class="org.mortbay.jetty.webapp.WebAppContext"><Arg><Ref id="contexts"/></Arg><Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg><Arg>/xxx</Arg><Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set><Set name="VirtualHosts"><Array type="java.lang.String"><Item>333.444.555.666</Item><Item>127.0.0.1</Item><Item>www.blah.com</Item><Item>www.blah.net</Item><Item>www.blah.org</Item></Array></Set></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来访问:
view plaincopy to clipboardprint?


  • <!-- webapp xxx.war -->   
  •     <New class="org.mortbay.jetty.webapp.WebAppContext">   
  •       <Arg><Ref id="contexts"/></Arg>   
  •       <Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg>   
  •       <Arg>/xxx</Arg>   
  •       <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>   
  •       <Set name="VirtualHosts">   
  •         <Array type="java.lang.String">   
  •           <Item>333.444.555.666</Item>   
  •           <Item>127.0.0.1</Item>   
  •           <Item>www.blah.com</Item>   
  •           <Item>www.blah.net</Item>   
  •           <Item>www.blah.org</Item>   
  •         </Array>   
  •       </Set>   
  •     </New>   
  •   
  •     <!-- webapp zzz.war -->   
  •     <New class="org.mortbay.jetty.webapp.WebAppContext">   
  •       <Arg><Ref id="contexts"/></Arg>   
  •       <Arg><SystemProperty name="jetty.home">/webapps/zzz.war</Arg>   
  •       <Arg>/zzz</Arg>   
  •       <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>   
  •       <Set name="VirtualHosts">   
  •         <Array type="java.lang.String">   
  •           <Item>777.888.888.111</Item>   
  •           <Item>www.other.com</Item>   
  •           <Item>www.other.net</Item>   
  •           <Item>www.other.org</Item>   
  •         </Array>   
  •       </Set>   
  •     </New>  

  <!-- webapp xxx.war --><New class="org.mortbay.jetty.webapp.WebAppContext"><Arg><Ref id="contexts"/></Arg><Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg><Arg>/xxx</Arg><Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set><Set name="VirtualHosts"><Array type="java.lang.String"><Item>333.444.555.666</Item><Item>127.0.0.1</Item><Item>www.blah.com</Item><Item>www.blah.net</Item><Item>www.blah.org</Item></Array></Set></New><!-- webapp zzz.war --><New class="org.mortbay.jetty.webapp.WebAppContext"><Arg><Ref id="contexts"/></Arg><Arg><SystemProperty name="jetty.home">/webapps/zzz.war</Arg><Arg>/zzz</Arg><Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set><Set name="VirtualHosts"><Array type="java.lang.String"><Item>777.888.888.111</Item><Item>www.other.com</Item><Item>www.other.net</Item><Item>www.other.org</Item></Array></Set></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,同时我们其它的程序也是在不同的虚拟主机和不同的上下文上可用。如果我们想让这些虚拟主机使用相同的上下文改怎么办呢?非常简单, 我们仅仅需要为每个程序提供相同的上下文路径,保留以上其它定义就可以了:
view plaincopy to clipboardprint?


  • <New class="org.mortbay.jetty.webapp.WebAppContext">   
  •       <Arg><Ref id="contexts"/></Arg>   
  •       <Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg>   
  •       *<Arg>/</Arg>*   
  •       <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>   
  •       <Set name="VirtualHosts">   
  •         <Array type="java.lang.String">   
  •           <Item>333.444.555.666</Item>   
  •           <Item>127.0.0.1</Item>   
  •           <Item>www.blah.com</Item>   
  •           <Item>www.blah.net</Item>   
  •           <Item>www.blah.org</Item>   
  •         </Array>   
  •       </Set>   
  •     </New>   
  •   
  •     <New class="org.mortbay.jetty.webapp.WebAppContext">   
  •       <Arg><Ref id="contexts"/></Arg>   
  •       <Arg><SystemProperty name="jetty.home">/webapps/zzz.war</Arg>   
  •       *<Arg>/</Arg>*   
  •       <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>   
  •       <Set name="VirtualHosts">   
  •         <Array type="java.lang.String">   
  •           <Item>777.888.888.111</Item>   
  •           <Item>www.other.com</Item>   
  •           <Item>www.other.net</Item>   
  •           <Item>www.other.org</Item>   
  •         </Array>   
  •       </Set>   
  •     </New>  

  <New class="org.mortbay.jetty.webapp.WebAppContext"><Arg><Ref id="contexts"/></Arg><Arg><SystemProperty name="jetty.home">/webapps/xxx.war</Arg>*<Arg>/</Arg>*<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set><Set name="VirtualHosts"><Array type="java.lang.String"><Item>333.444.555.666</Item><Item>127.0.0.1</Item><Item>www.blah.com</Item><Item>www.blah.net</Item><Item>www.blah.org</Item></Array></Set></New><New class="org.mortbay.jetty.webapp.WebAppContext"><Arg><Ref id="contexts"/></Arg><Arg><SystemProperty name="jetty.home">/webapps/zzz.war</Arg>*<Arg>/</Arg>*<Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set><Set name="VirtualHosts"><Array type="java.lang.String"><Item>777.888.888.111</Item><Item>www.other.com</Item><Item>www.other.net</Item><Item>www.other.org</Item></Array></Set></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 -->

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-347365-1-1.html 上篇帖子: Jetty设置Java系统变量常用方法 下篇帖子: maven创建web项目,并用jetty调试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表