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

[经验分享] tomcat的Server.xml

[复制链接]

尚未签到

发表于 2017-1-25 10:50:21 | 显示全部楼层 |阅读模式
1 Server.xml结构介绍
<Server> -- 大饭店
  <Listener> -- 不理它!
  <Service> -- 一个饭店就一个服务系统
    <Connector> -- 服务员
    <Engine> -- 房(正规饭店称之为后厨)
      <Host> -- 热菜区(还可以西餐区等等)
        <Context> -- 
l <Server>:根元素,表示整个服务器的配置信息;
l <Listener><Server>的子元素,在<Server>可以有N个监听器,现在不用理睬它;
l <Service><Server>的子元素,在<Server>中只能有一个<Service>元素,它表示服务;Service有一个属性  <Service name="Catalina">
l <Connector><Service>的子元素,在<Service>中可以有N<Connector>元素,它表示连接。你可以把它理解为接待人员,接待人员不能处理业务,但它会带领你去查找可以处理业务的组件。不同的<Connector>针对不同的协议,我们只需要关心处理HTTP协议的<Connector>元素。该元素有port属性,表示端口号,默认值为8080,你可以把它修改为80,那么以后在访问项目时就不用再给出端口号了,因为80HTTP默认端口,即不给出时就是表示使用80端口,例如:http://localhost/hello/index.jsp
l <Engine><Service>的子元素,在<Service>中只能有一<Engine>元素,它是处理引擎。前面已经说过了<Connector>是接待员,它不能处理业务,它会把用户带到<Engine>这里来处理业务,也就是说用户最终连接的是<Engine>
l <Host><Engine>的子元素,在<Engine>中可以有N<Host>元素,每个<Host>元素表示一个虚拟主机。所谓虚拟主机就像是真的主机一样,每个主机都有自己的主机名和项目目录。例如<Host name=”localhost” appBase=”webapps”>表示主机名为localhost,这个主机的项目存放在webapps目录中。访问这个项目下的主机时,需要使用localhost主机名,项目都存放在webapps目录下。下面会介绍如果添加虚拟主机!!!
l <Context><Host>元素的子元素,在<Host>中可以有N<Context>元素,每个<Context>元素表示一个项目。不配置它项目也可以正常运行,前面我们创建项目时也没有在server.xml文件中创建<Context>,也可以运行。但如果你需要多一些特殊功能,那么就要配置Context元素了。重要!!!
 
  用户发出一个请求:http://localhost:8080/hello/index.jsp。接待人员(Conector)发现是http/1.1协议,而且还是8080端口,就把请求接收,然后交给引擎(Engine)。引擎通过请求中的主机名localhost找到虚拟主机(Host),再通过虚拟主机对应的appBase(即webapps)中去找项目。在webapps中找到hello项目,再到hello项目再去找index.jsp
 
2 修改端口号
打开server.xml文件

http默认端口号为80,也就是说在URL中不给出端口号时就表示使用80端口。当然你也可以修改为其它端口号。
在网络中通过IP地址可以锁定一台主机,通过端口号可以锁定主机上的一个程序。与网络相关的软件都会有接口号:
l Oracle默认端口号:1521
l MySQL默认端口号:3306
l WebLogic默认端口号:7001
l tomcat : 8080
l 80http可以省略的默认端口
l 把tomcat的端口设置为80那么就可以这样访问 http://localhost/
l http://www.baidu.com:80/ 与  http://www.baidu.com/ 是相同的,80可以设置.
端口号必须是0~65535之间的整数,OS会使用0~1023这些端口号,所以你最好去使用1024~65535之间的端口号。
 
查看端口是否被占用:cmd à netstat -abv
 
3 添加虚拟主机
你想不想这样来访问Tomcat的首页:http://www.qdmmy6.com,当然这是可以的!但这有三件事要做:
l 修改Tomcat端口号为80
注册DNS,到C:\WINDOWS\system32\drivers\etc\hosts,打开它,添加127.0.01 www.qdmmy6.com
l 在server.xml文件中添加名为www.qdmmy6.comHost元素;
 
第一步上面已经讲过了,还有两步。
注册DNS

server.xml中添加<Host>元素

 
当然,你也可以把appBase的值修改为其它目录,那么你的项目就要放到appBase指定的目录中去。假如你把appBase=”F:\myapps”,用户访问http://www.qdmmy6.com/hello时,服务器会去F:\myapps目录去查找hello项目。
注意,其他人不能通过http://www.qdmmy6.com/hello来访问我的服务器,因为你们的电脑不能解析http://www.qdmmy6.com是什么,你可能会想,在自己的C:\WINDOWS\system32\drivers\etc\hosts文件中添加127.0.0.1 www.qdmmy6.com,这也是不行的,因为你的电脑会把www.qdmmy6.com解析成127.0.0.1这个IP地址,而这个地址表示的是本机!所以你需要把127.0.0.1修改为我的IP就可以了!但这么做没什么意思,因为每个人想通过http://www.qdmmy6.com来访问我的服务器,都需要去修改自己的C:\WINDOWS\system32\drivers\etc\hosts文件,只是玩玩而已,不用当真!
域名解析的过程:DNS服务器上面存放着一张表,IP地址与域名相对应的,当在浏览器中请求http://www.baidu.com,首先要解析域名,即找到与www.baidu.com对应的IP地址,解析的过程就是:先到本地机器的C:\WINDOWS\system32\drivers\etc\hosts文件中查找,如果找到就访问,如果找不到就到远程DNS服务器上找通过就个原理可以封锁网站,如果你不想让某个网站的广告出现就把它的域名在C:\WINDOWS\system32\drivers\etc\hosts文件中映射成127.0.0.1这样就访问不到了.当你把www.baidu.com映射成127.0.0.1,你就访问不到百度了.
 
4 发布项目三种方式
常用的是三种方式:其他的还有,去参考tomcat的帮助文档.
第一种我们已经学过了,就是把项目放到webapps目录下,即localhost主机名对应的项目空间目录中。
第二种方式:配置虚拟目录一个Context元素对应一个项目Context就是上下文件路径.
我们所说的上下文路径就是Context path属性的值,Context path一般与项目名相同
第二种方式:可以把项目放到任何目录,然后通过添加<Context>元素来指定项目的真实位置。在<Host>元素中添加<Context>元素,然后指定<Context>元素的pathdocBase属性,其中path指定的是项目虚拟路径,可以随意给出,例如abcdocBase指定你的项目的真实存放的路径。
例如,项目的真实目录在F:\hello。你找到server.xml中的<Host>元素,给其添加子元素<Context>,内容如下:
 

注意,一旦给出了docBase属性的值后,访问localhostabc项目时,就不会再去webapps目录下去查找项目,而是通过docBase的值来锁定项目位置,即F:\hello1

注意,访问项目的URLhttp://localhost/abc/index.jsp,而不是http://localhost/hello1/index.jsp,你可能会说,我们的项目目录名叫hello1,但因为指定了<Context>元素的path属性,那么访问项目时就不会再使用项目目录名来作为访问路径了。

第三种方式与第二种比较相似,第三种是使用外部文件来添加<Context>元素。这需要在conf目录下找到catalina\localhost目录,然后在这个目录下创建一个XML文件,这个名称就是虚拟路径名。例如创建的XML文件名为def.xml,然后在def.xml文件中添加如下内容

<Context docBase="F:\hello1"/>

注意,这里没有给出path属性,因为已经不用给出了,path的值由XML文件的名称决定。也就是说path的值为def。访问URL为:http://localhost/def/index.jsp

<!--EndFragment-->

运维网声明 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-333228-1-1.html 上篇帖子: tomcat之session实现 下篇帖子: tomcat的Server.xml
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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