配置Tomcat的虚拟主机

一个web服务器下一个ip可以访问多个域名,那就可以配置多个网站

Tomcat的虚拟主机

1.编辑配置文件:

vim /usr/local/tomcat/conf/server.xml

其中之间的配置为虚拟主机配置部分,name定义域名,

appBase定义应用的目录,Java的应用通常是一个war的压缩包,你只需要将war的压缩包放到appBase目录下面即可。unpackWARs="true",这个是把放在appBase下面的war包自动解压,访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。autoDeploy 如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用。

<!--   />中表示注释。



2.增加虚拟主机,编辑server.xml,在下面增加如下内容

    unpackWARs= "true" autoDeploy="true"

    xmlValidation="false" xmlNamespaceAware="false">

   

appBase 放的是应用目录,放java的war包,放在appBase下,则war包会自动解压;

如果我们的应用放在docBase下,不能放war包,把war包的内容解压后放在docBase定义应用存放的路径下。(其实二者都是定义放网页文件的的路径,只是 一个需要解压一个不需要而已)

 docBase,这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中很多同学遇到过访问404的问题,其实就是docBase没有定义对。

appBase 路径:/usr/local/tomcat/webapps


实验:

下面我们通过部署一个java的应用来体会appBase和docBase目录的作用


(1)下载一个blog的war包:(放在/usr/local/src/)

 wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war


(2)复制zrlog的war包到/usr/local/tomcat/webapps/(appBase 定义的路径

复制过去后悔发现自动解压war包


(3)修改一下解压后包的名字(方便实验)

 mv /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release /usr/local/tomcat/webapps/zrlog

(此时包名修改成zrlog,但是一会又会自动解压一个war包出来,因为我们修改过它的名字)


(4)浏览器访问:

192.168.136.133:8080/zrlog/install


出现安装向导,

1.首先创建一个mysql用户

(1)先进入到mysql: mysql -uroot -p123456

(2)create database zrlog;  /创建一个数据库

(3)创建用户(zrlog)


(4)检查一下创建的用户是否成功:

能否用创建的用户的用户名和密码登录mysql

 mysql -uzrlog -h127.0.0.1 -p123456



2.完成zrlog网页上的安装向导

第一步是输入我们刚刚创建的mysql的用户名和密码




最后进入到zrlog论坛



以上在浏览器访问我们部署的项目的时候,我们地址栏写入的格式:ip+端口+项目名

如果想,直接输入ip+端口号,就访问,则使用虚拟主机,定义访问项目的路径。

如输入我们定义的域名直接访问项目:

1.把项目放置docBase的定义路径下

 mkdir /data/wwwroot/123.cn/


mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/


2.关闭和开启tomcat服务

/usr/local/tomcat/bin/shutdown.sh

/usr/local/tomcat/bin/startup.sh


再查看是否服务正常监听端口




3.window下hosts文件

添加:定义的域名


再在浏览器中输入  定义的域名+端口号

http://www.123.cn:8080/



如果我们不定义doc则我们直接访问的目录就是tomcat默认的路径,就是appBase

中定义的目录webapps/ROOT下的index.jsp



使用war包时就放在appBase中定义的目录,它会自动为war包解压


(所以我们如果定义一个appBase的目录appBase="定义的目录",则我们也需要在该目录下定义一个ROOT目录。因为项目的默认访问路径就是在这个appBase="定义的目录"下 的

ROOT目录下的。)




( curl localhost:8080/index.jsp -I;默认访问appBase="webapps"的ROOT的index.jsp.

这里的webapps是相对路径,相对这个配置文件的路径)



                Tomcat日志

在虚拟主机处添加就可以了!!