如何让外网的用户访问自己Tomcat项目

上篇文章学习如何让局域网中的用户访问自己的Tomcat项目,这篇文章学习如何让外网的用户访问自己的Tomcat。仅是使用免费的端口映射软件来简单的实现,这里我知道的有两种工具,第一种我昨天晚上发现的,第二种早上写博客时候才发现的,不过第二种可以拥有自己的域名,下面来介绍这两种工具。

1.ngrok
官网:https://ngrok.com 进入官网注册,下载客户端。
注册成功,点击左侧的Auth,可以看到你的授权码
在这里插入图片描述

打开下载的客户端软件
命令行输入 ngrok authtoken 授权码(你自己的授权码) 你的授权码就会保存在~/.ngrok2/ngrok.yml,因此只需输入一次,如果输入错误,下一步就会报错。
命令行接着输入 ngrok http 8080(你要映射的端口号,Tomcat默认端口号为8080)。如果你上一步输入的授权码正确,就会看到你的域名了。
这样127.0.0.1:8080端口映射到了这个域名,还是非常的简单的,不过这个有一个缺点就是每次启动ngrok进行映射端口,都会给你重新分配一个域名。那么接下来介绍的就有一个固定的域名。

2.EchoSite:
进入官网 https://echosite.2bdata.com 注册账号,进行域名抢注,可以选择你自己喜欢的前缀。
注册就送你3个月的免费域名使用期限,之后一元一个月,还是可以的。
点击客户端下载,下载配置文件和客户端。将解压之后的客户端以及配置文件放在问一个文件夹下。
接着修改配置文件。
在这里插入图片描述 其中subdomain(子域):就是你刚刚申请的域名的前缀。
http:127.0.0.1代表本地 8080(修改为Tomcat默认端口)。
可以看到tunnels标签中有多个name,因此可以设置多种映射关系。
接着打开客户端键入命令 echosite -config=echosite.yml start name1
在这里插入图片描述
当然也可以是name2,name3,所以上面多个name的作用就来了。

键入命令后,出现tunnel status online 说明映射成功。
此时,http:127.0.0.1:8080映射到你自己的域名上去了。

3.最后介绍两种通过设置Tomcat的server.xml配置文件来任意存放你的部署文件的方法。
①静态部署:
Tomcat的Webapps目录是Tomcat的默认目录。可以看到server.xml配置文件中有以下内容:
在这里插入图片描述

webapps这个默认目录是可以改变的,通过修改appBase即可,将webapps修改你指定的发布目录即可。
但是这样无法访问Tomcat主页了,浏览器输入localhost:8080报错404

②在server.xml配置文件中指定:
打开server.xml文件,在Host标签内建一个Context,内容如下:
在这里插入图片描述
这种方法便可以访问Tomcat主页的
说明:
pah为虚拟路径,如果将path设置为“/myapps”,那么浏览器访问时localhost:8080后来必须要加上/myapps,即localhost:8080/myapps/(这样可以访问Tomcat主页)。当然也可以将path设置为“/”,那么只需输入localhost:8080/ + 项目名就可以访问项目了(这样就无法访问Tomcat主页)。
docBase是应用程序的物理路径,就是你存放整合项目资源包的路径。
workDir是这个应用的工作目录,存放运行时生成的与这个应用相关的文件。
debug是设置debug level,0表示提供最少的信息,9表示提供最多的信息。
privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet。
reloadable设置为true是为了实现热部署。Tomcat会自动检测应用程序的/WEB-INF/lib 和classes目录的变化,自动装载新的应用程序,可以在不重启Tomcat的情况下改变应用程序,实现热部署。

可以看到让外网的用户访问自己的Tomcat项目还是比较简单,只需要使用软件将自己的localhost:8080映射到指定的域名就可以了。