Tomcat虚拟主机配置(基于域名/端口)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat虚拟主机配置(基于域名/端口)相关的知识,希望对你有一定的参考价值。

什么是虚拟主机?

虚拟主机就是把一台真正的主机分成许多“虚拟”的主机,每一台虚拟主机都具有独立的域名和IP地址,具有完整的Internet服务器功能。
虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台独立的主机完全一样。

配置文件位置:

tomcat/conf/server.xml文件
2.tomcat的默认端口:8080

1.基于域名的虚拟主机

多个域名解析一个IP地址

<Host name="www.maiya.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Context docBase=‘jspgou‘ path="" reloadable="true" crossContext="true"/>
</Host>

参数说明:

appBase: 指定站点根目录位置(可以是相对路径或绝对路径)

unpackWAR :本项为"true" 意味着 Tomcat 会保存 .war 包的解压结果,然后直接对解压结果进行运行。
考虑到jvm的类加载机制,每个类都仅加载一次,但是页面内容却没有类似的有效缓存,所以 .war 还是解压执行的比较好。

path: 指定访问路径URI(虚拟目录名)

docBase :指定jsp项目的存放路径(可以是相对路径或绝对路径)

debug :设定debug的等级0提供最少的信息,9提供最多的信息

reloadable :本项为true时 当web.xml或者class有改动的时候都会自动重新加载不需要从新启动服务(所谓的支持热发布功能)

crosscontext :本项为"true" 表示配置的不同context共享一个session

cachingAllowed :本项为"true"时 意味着开启了 Tomcat 的静态缓存功能。静态文件包括 javascript 程序、图片声音等允许网络访问的文件以及 html 页面。

cacheMaxSize :指定静态缓存功能缓冲区大小的设定。单位是 MB ,也就是 1024KB 。例子中设为 1024 ,意味着1GB 。

2.基于端口虚拟主机

**一个IP地址,通过不同的端口实现不同网站的访问

关键:在server.xml 中 设置两个service组件,设置不同的端口
**

<Service name="Catalinai1">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="www.maiya.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Context docBase=‘jspgou‘ path="" reloadable="true" crossContext="true"/>
        </Host>
        <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>

<Service name="Catalina2">
    <Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="www.maiya.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Context docBase=‘jspgou‘ path="" reloadable="true" crossContext="true"/>
        </Host>
        <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>

以上是关于Tomcat虚拟主机配置(基于域名/端口)的主要内容,如果未能解决你的问题,请参考以下文章

tomcat多域名访问

Tomcat-8.5.23 基于域名和端口的虚拟主机

Tomcat调优和虚拟主机的设置

tomcat 虚拟主机配置

Nginx配置基于多域名端口IP的虚拟主机

Apache基于域名端口IP的虚拟主机配置(Centos 6.5)