基于域名虚拟主机
#基于域名虚拟主机:
#tomcat的虚拟主机是基于域名存在的,修改host的的name选项即可,也可以通过appbase修改站点根目录,tomcat每次都会访问host的appbase目录下的ROOT目录下的index.jsp文件,tomcat的配置文件的页面路径是以目录的形式存在
#tomcat的虚拟主机其实就是在一个Tomcat服务上增加一个host,在配置文件中增加host配置信息,编写域名配置,使其访问时访问域名即可得到相应信息,一个Tomcat服务上可以配置多个虚拟主机,也就是多个域名
vim /usr/local/tomcat/conf/server.xml
<Host name="www.ceshi.com" appBase="/ceshi" #域名,站点目录
unpackWARs="true" autoDeploy="true"> #是否自动解压war包,是否自动部署war包
</Host>
mkdir -p /ceshi/ROOT #为虚拟主机创建站点目录,ip递归创建
echo "ceshi success" > /ceshi/ROOT/index.jsp #写入页面文件
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
vim /etc/hosts #解析域名
192.168.5.4 www.ceshi.com
firefox www.ceshi.com:8080
ceshi success
tomcat的自定义页面
#tomcat的自定义页面,自定义tomct的站点根目录context的访问
#其实就是除了默认主页index.jsp之外的其他页面,一个网站或者APP除了首页之外也会有很多其他页面,这context就是做的其他页面,一个虚拟主机可以多很多个的context,使用超链接进行页面转换
vim /usr/local/tomcat/conf/server.xml
<Host name="www.ceshi.com" appBase="/ceshi_dir" #域名,站点目录路径
unpackWARs="true" autoDeploy="true"> #自动解包,自动部署
<Context path="ceshi" docBase="/ceshi_dir/ceshi" #path项目访问路径,docBase页面文档实际存放路径
reloadeable="false" crossContext="true"/> #不自动重新加载,context共享一个会话
#</Host>结尾在最后面,不需要加
mkdir -p /ceshi_dir/ceshi
echo "ceshi success" > /ceshi_dir/ceshi/index.jsp
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
netstat -anput | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 63475/java
vim /etc/hosts
192.168.5.4 www.ceshi.com
curl www.aaa.com:8080/ceshi/index.jsp
ceshi success
curl www.ceshi.com:8080/ceshi/ #此位置最后面的/不能取消
ceshi success
关于站点目录的标准叙述
<Host name="www.ceshi.com" appBase="/ceshi_dir" #域名,站点目录
unpackWARs="true" autoDeploy="true"> #自动解包,自动部署
<Context path="ceshi" docBase="/ceshi_dir/ceshi" #path访问路径,docBase页面文档存放路径
reloadeable="false" crossContext="true"/> #不自动重新加载,context共享一个会话
</Host>
1.host的name是域名位置,appbase是此虚拟主机的站点根目录,默认是tomcat下的webapps,配置文件默认没有context内容,这种情况下默认访问的是wabapps下的ROOT目录的index.jsp文件。如果部署项目可以部署在webapps下,访问时加访问的项目目录名称即可,如firefox 192.168.5.4:8080/bdqnweb,即bdqnweb部署在了webpps下
2.context的path是虚拟路径可以理解为项目目录名。docbase是实际文档存放的位置,此位置写绝对路径,且不能是webapps目录内的路径,否则会导致应用被加载两次,当此位置填写后会覆盖webapps的位置,
3.当寻找到站点根目录的时候,有详细路径会直接寻找详细路径,无详细路径则会寻找在站点根目录内的ROOT目录,无ROOT目录则无反馈
curl www.aaa.com:8080/ceshi/index.jsp
ceshi success
curl www.ceshi.com:8080/ceshi/
ceshi success
解析:当访问这个网址,通过hosts解析到5.4的IP地址,然后通过配置文件知道根目录位置/ceshi_dir,项目是ceshi,项目文档实际存放路径/ceshi_dir/ceshi,然后再找到需要的文档/ceshi_dir/ceshi
mkdir /ceshi_dir/ROOT/
echo 123 > /ceshi_dir/ROOT/index.jsp
curl www.ceshi.com:8080
123
curl www.ceshi.com:8080/ceshi/
ceshi success
解析:当我在站点根目录内建立的ROOT目录后,写入新的内容123,访问并没有写详细路径,则寻找到站点根目录后会寻找默认的ROOT目录下的内容,当有具体路径是则是相应内容
部署war包
将war包放入tomcat 安装目录中的 webapps中
tomcat会自动解压,重新启动tomcat,即可通过浏览器进行访问
ls /usr/local/tomcat/webapps/
bdqnweb bdqnweb.war docs examples host-manager manager ROOT
访问时访问连接加上war包解压出的目录名称,如下:
firefox 192.168.5.4:8080/bdqnweb
Hello World!