spring - 是否可以使用在 Windows IIS 上运行的嵌入式 Tomcat Web 服务器从 Spring Boot 应用程序的 URL 中删除端口?

标签 spring spring-boot embedded-tomcat-8

具有嵌入式 tomcat Web 服务器的 Spring Boot 应用程序作为已执行的 JAR 文件在 IIS 之上运行,是否总是需要在 URL 中指定端 Eloquent 能在浏览器中访问应用程序?

最佳答案

所有生产应用程序的 url 都没有在其 url 中包含端口号,无论是在内部网络还是在公共(public)网络上运行。另一方面,基于 java 的应用程序服务器运行在 80 以外的端口上,例如 tomcat 默认运行在 8080 上。我们可以把tomcat的默认端口改成80,但是我们用的是像nginx这样的web服务器,让它运行在80端口,然后把请求转发给tomcat或者java应用服务器。

使用运行在端口 80 上的网络/代理服务器(如 nginx)而不是将 tomcat 或应用程序服务器的端口更改为 80 有以下好处。

  1. 在生产环境中,tomcat/其他应用服务器运行在多个节点上,我们可以使用nginx作为负载均衡器。
  2. 繁琐的url在这里轻松美化(这里去掉了端口号)
  3. nginx之类的服务器有很多优点,大家可以google一下了解一下。

以下线程解释了如何将请求从 nginx 转发到 tomcat。

Nginx configuration to pass site directly to tomcat webapp with context

关于spring - 是否可以使用在 Windows IIS 上运行的嵌入式 Tomcat Web 服务器从 Spring Boot 应用程序的 URL 中删除端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41272866/

相关文章:

java - 配置 Velocity 以读取类路径之外的模板文件

java - 带有调度程序的 Spring Boot-BeanCreationNotAllowedException : Error creating bean with name 'entityManagerFactory' : Singleton bean creation not allowed

spring - java.io.IOException : Broken pipe bringing down the embedded tomcat 8 app

java - 从 Spring 调用 Oracle 存储函数

java - 如何在 Hibernate/JPA 中使用 xml 编写命名查询?

java - Axon 事件存储处理 - 读取聚合的所有事件

spring-boot - 如何在 Spring 授权服务器 0.2.0 中实现自定义 UserDetailsS​​ervice 或自定义 AuthenticationProvider

java - @ConditionalOnExpression 启用/禁用@RestController

java - 如何在嵌入式 Tomcat 8 中配置 JDBC 资源?

java - 为什么 Spring-Boot 应用程序在创建 CXF SOAP 服务步骤时卡住?