http
申请头 host
字段示意指标服务器域名。咱们晓得个别服务器都只会有一个 ip
地址,而 一个 ip
地址能够有多个域名 ,比方咱们有www.qiniu.com
,www.taobao.com
和www.jd.com
几个域名,在域名供应商那通过 A
记录或者 CNAME
记录的形式记录的形式与服务器的 ip
地址关联,那么通过任何一个域名拜访最终解析到的都是该ip
。
如果一个服务器只部署一个站点是不是很浪费资源,在 tomcat
上搭建站点时,能够给每个域名指定一个拜访目录,而后每次拜访都会依据不同的 Host
的信息申请到不同的站点下面 ,配置/usr/local/tomcat/conf/
目录 server.xml
如下:
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8006" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<Listener className="org.apache.catalina.core.AprLifecycleListener"/>
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"/>
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="1000"
minSpareThreads="20"
acceptCount="1000"
maxHttpHeaderSize="65536"
debug="0"
disableUploadTimeout="true"
useBodyEncodingForURI="true"
enableLookups="false"
URIEncoding="UTF-8"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
// Tomcat 的 Webapps 目录是 Tomcat 默认的利用目录,当服务器启动时,会加载所有这个目录下的利用。如果你想要批改这个默认目录,能够在 conf 下的 server.xml 文件里批改 Host 标签里的 appBase 值。<Host name="www.qiniu.com" appBase="/data/wwwroot/qiniuwebapp" unpackWARs="true" autoDeploy="true">
<Context path=""docBase="/data/wwwroot/qiniuwebapp"debug="0"reloadable="false"crossContext="true"/>
// path:是拜访时的根地址,示意拜访的门路,能够自定义,如上述例子中,拜访该应用程序地址如下:http://localhost:8080/;
// docbase:示意应用程序的门路,docBase 能够应用绝对路径,也能够应用相对路径,相对路径绝对于 webapps ;
// reloadable:示意能够在运行时在 classes 与 lib 文件夹下主动加载类包。这个属性在开发阶段通常都设为 true,不便开发;在公布阶段应该设置为 false,进步应用程序的访问速度 ;
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.taobao.com" appBase="/data/wwwroot/taobaowebapp" unpackWARs="true" autoDeploy="true">
<Context path=""docBase="/data/wwwroot/taobaowebapp"debug="0"reloadable="false"crossContext="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.jb.com" appBase="/data/wwwroot/jbwebapp" unpackWARs="true" autoDeploy="true">
<Context path=""docBase="/data/wwwroot/jbwebapp"debug="0"reloadable="false"crossContext="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>