端口号不一致也能访问的原因

端口号不一致也能访问

IP地址访问端口号和localHost访问本地地址端口号不一致原因

IP地址访问测试环境
http://172.10.10.50:8080/companyname/sys/task/check。
Local访问本地地址:
http://localhost:7080/sys/task/check
域名访问:
https://companyname.cn/admin/#/sys/task/check
ip地址与域名是一对多的关系。一个ip地址可以对应多个域名,但是一个域名只有一个ip地址。ip地址是数字组成的,不方便记忆,所以有了域名,通过域名地址就能找到ip地址。

对比发现访问53环境地址的端口和本地端口不一致

我们用mvn clean package打包成jar后,将其运行在一台有jdk的机器上,可以直接使用java -jar 项目名.jar的方式运行,毫无问题。但是在另一台机器上,我们将打包好的war文件放入tomcat中运行时,发现端口号变成了默认的8080,而不是我们在server.port中设置的端口7080,同时我们还需要在接口地址中加上项目名companyname。
我们发现通过jar运行实际上是启动了内置的tomcat,所以使用的是应用的配置文件中的端口;而直接部署到tomcat之后,内置的tomcat就不会启用,所以相关配置就以安装的tomcat为准,与应用的配置文件就没有关系了。

  1. war的历史
    总体来说,很多年前,当时的 Sun 公司在度过了早期用 C++ 写 Html 解析器的荒蛮时期后,进入了 CGI 时代,而此时 Sun 公司决定进军这个领域。为了区别自己并显得更加高大上,公司研发出了 Servlet 标准,并搞出了最早的 JSP。同时,公司还给自己起了一个非常高大上的名称——JavaEE——即 Java 企业级应用标准。实际上,JavaEE 就是一堆服务器以 HTTP 提供服务的东西,但公司为此吹嘘不已。
    既然是企业级标准,那么自然得有自己的服务器标准。于是 Servlet 标准便应运而生。以此标准实现的服务器被称为 Servlet 容器服务器。Tomcat 就是 Servlet 容器服务器的代表,并且被 Sun 公司捐献给了 Apache 基金会。当时的 Web 服务器还是一个非常高大上的概念。而当时的 Java Web 程序的标准就是 War 包(实际上就是一个 Zip 包),这就是 War 包的来源。
  2. Jar包合war包优缺点
    War包优点:
    多个项目可共用同一容器,同一个端口。
    性能调优更方便,因为 war 包在项目配置或启动脚本中也可以调优。
    占用资源少,仅限于多个项目运行同一服务器实例情况下。
    项目发布可以单独替换某个文件 。
    缺点:
    需要单独下载部署 tomcat, 项目产生外部环境依赖。
  3. Jar包优点:
    内置容器,无外部依赖,可独立部署。
    不共用容器,隔离性好。
    可在项目中配置 Tomcat 容器或其它容器,项目中也可配置容器相关配置参数。
    高内聚。
    方便容器化。
  4. 缺点:
    每次修改都需要将所有文件打包。
    每个项目启动都是单独的容器 (严格上讲不能算是缺点)。
  5. 总结
    jar 包更适合微服务架构,减少了外部依赖,服务更加内聚,隔离性好,方便容器化部署;war 包更适用于垂直架构单体架构,在多个项目公用同一容器情况下,可以节省更多资源。
    部署war包:
    修改pom.xml的war将原先的jar改为war;
    将war文件放入apache或tomcat对应的webapps目录下。

希望对你的学习有所帮助

链接: link.

图片: Alt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值