具有嵌入式 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 有以下好处。
- 在生产环境中,tomcat/其他应用服务器运行在多个节点上,我们可以使用nginx作为负载均衡器。
- 繁琐的url在这里轻松美化(这里去掉了端口号)
- 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/