Tomcat虚拟主机的配置(macOS系统)
参考视频:https://www.bilibili.com/video/BV1mE411h7Co?p=213&spm_id_from=pageDriver
页面准备
使用视频配套资料里抓取的百度首页资源。
网盘链接:https://pan.baidu.com/s/1ZoHS7sk7Rrx4Tz-XeC0iUg
提取码:pdln
所需文件如下:baidu_files和baidu.htm
![截屏2021-02-23 18.02.56](https://tva1.sinaimg.cn/large/008eGmZEly1gnxmiplae9j31ke0foq8b.jpg)
创建一个路径
路径按自己的喜好来就行,比如我放在了/User/yy/otherProjects下。建立一个文件夹"baidu",再建立子文件夹"website",将之前的两个文件放进去。
![截屏2021-02-23 18.05.11](https://tva1.sinaimg.cn/large/008eGmZEly1gnxmkznjrpj30xs07c75b.jpg)
配置Tomcat虚拟主机
进入Tomcat的配置文件,修改server.xml
比如我的server.xml的路径是 xxx/tomcat/9.0.43/libexec/conf/server.xml
拉到最下面,有个Host标签。这是默认的对localhost的设置,我们仿照它增添一个虚拟主机。
![截屏2021-02-23 18.10.01](https://tva1.sinaimg.cn/large/008eGmZEly1gnxmpz16skj312u0igwkt.jpg)
我把虚拟主机的name设置为"www.bdtest.com" appBase设置为上一标题中创建的目录("/Users/yy/otherProjects/baidu")
(视频里是把name直接写成"www.baidu.com",我只是想区分一下所以改成了www.bdtest.com,这里影响不大。)
把注释删掉之后就长这样:
![截屏2021-02-23 18.13.44](https://tva1.sinaimg.cn/large/008eGmZEly1gnxmtwyep3j313e08o0w8.jpg)
这个配置的意思是,以后我们输入name时,tomcat会去appBase的路径下找我们的项目。
修改本地hosts文件
首先查看当前本地的ip地址:
这个办法很多,百度一下就行。这里随便使用一种。
系统偏好设置——>网络——>高级——>TCP/IP——>IPv4地址
这是本地的ip地址,比如我的是192.168.1.44
mac直接打开终端,输入
sudo vim /etc/hosts
然后输入密码,进入到编辑界面。
按键盘上的i进入insert模式
输入你的ip地址 空格 虚拟主机name
比如我输入的就是 192.168.1.44 www.bdtest.com
(中间空格有多少个不影响)
![截屏2021-02-23 18.18.57](https://tva1.sinaimg.cn/large/008eGmZEly1gnxmzcbn6zj30wi0amdk1.jpg)
输入完毕后按键盘左上角的esc,然后输入:wq(会显示在窗口底部),表示保存并退出。
刷新DNS缓存
视频里没提到,但是我遇到了这个问题。保险起见还是刷新一下。在终端输入下面代码
sudo killall -HUP mDNSResponder
刷新完毕,现在ping一下刚才的网站看看。
![截屏2021-02-23 18.25.31](https://tva1.sinaimg.cn/large/008eGmZEly1gnxn63yc7zj30o20acq94.jpg)
可以看到from是192.168.1.44
启动服务器访问项目
在终端输入,启动Tomcat
catalina start
在浏览器里输入
www.bdtest.com:8080/website/baidu.htm
应该就能看到如下页面。
![截屏2021-02-23 18.27.51](https://tva1.sinaimg.cn/large/008eGmZEly1gnxn8iydxpj31kx0u00x3.jpg)
(如果显示不出来,比如404或者拒绝访问等问题。检查三个地方:
-
主机hosts,刚才ping一下就是检查方法。
-
端口,有时候可能端口被占用。测试方法是直接在浏览器输入localhost:8080看看能不能显示tomcat的主页,就是那个猫猫的页面,如果能显示,那么端口是没问题的。
-
虚拟主机配置,就是最开始的那个server.xml。
以我的配置为例,确保"/Users/yy/otherProjects/baidu/website/baidu.htm"这个路径存在,测试方法就是在浏览器里直接输入
file:///Users/yy/otherProjects/baidu/website/baidu.htm,看看能不能显示就行了。
网页显示没问题了,接下来就是精简一下我们的输入
www.bdtest.com:8080/website/baidu.htm
通过下面这些配置,实现直接输入www.bdtest.com就能看到这个页面
修改端口号
还是之前的server.xml文件
找到Connector标签,将8080改成80,保存并退出。
![截屏2021-02-23 18.37.03](https://tva1.sinaimg.cn/large/008eGmZEly1gnxni3uxq9j30m803iwfd.jpg)
![截屏2021-02-23 18.36.38](https://tva1.sinaimg.cn/large/008eGmZEly1gnxnhow26oj30la03a3zd.jpg)
这样还不行!
MAC OS 本质上还是 Unix 系统, Unix 系统大多默认情况下非root用户是无法使用小于1024的常用端口的.这时候如果你开发中需要在普通用户下用到80端口, 比如 tomcat, 比如 vitualbox 下构建了一个 http 服务, 若你想直接通过 浏览器的 localhost 访问的话(不用加上莫名其妙的”:端口”的话)你就需要做一些系统端口转发的工作.
参考这篇博客进行配置,我就不赘述了。
https://www.cnblogs.com/kaffeetrinken/p/7655242.html
配置完毕后,重启tomcat。
(如果没有运行的话就不用stop)
catalina stop
catalina start
在浏览器输入www.bdtest.com/website/baidu.htm应该是可以显示的,即现在我们省略了端口号。
去掉website
还是在server.xml文件里,在刚才添加的Host标签内部再添加个虚拟路径。
意思是当我输入www.bdtest.com/时,我其实进入了website目录下
![截屏2021-02-23 18.42.19](https://tva1.sinaimg.cn/large/008eGmZEly1gnxnnl2gj3j31120c40x2.jpg)
配置完毕后,重启tomcat。
在浏览器输入www.bdtest.com/baidu.htm应该是可以显示的,即现在我们省略了website。
配置默认的首页
在tomcat的配置路径下找到web.xml(和server.xml在同一目录下)
以我的为例,在xxx/tomcat/9.0.43/libexec/conf/web.xml
![截屏2021-02-23 18.46.59](https://tva1.sinaimg.cn/large/008eGmZEly1gnxnsg9x5dj30xk0ecwil.jpg)
打开,拉到最下方。添加一条
<welcome-file>baidu.htm</welcome-file>
![截屏2021-02-23 18.47.28](https://tva1.sinaimg.cn/large/008eGmZEly1gnxnt0rqe4j30lg0aadi8.jpg)
表示baidu.htm也作为欢迎页。
就是访问目录时,首先看到的是这个欢迎页。
配置完成后,重启tomcat。
现在输入www.bdtest.com就可以看到页面了。
![截屏2021-02-23 18.52.02](https://tva1.sinaimg.cn/large/008eGmZEly1gnxnxvh4myj31dd0u0ag2.jpg)