【问题标题】:How to host Spring Boot Executable jar file on IIS using Undertow server?如何使用 Undertow 服务器在 IIS 上托管 Spring Boot Executable jar 文件?
【发布时间】:2026-02-13 02:20:04
【问题描述】:

我正在尝试将我的 Spring Boot 应用程序部署为客户端服务器上的 Windows 服务。我的 POM 文件使用 Undertow 服务器而不是 tomcat。我可以使用 Winsw 完成这些工作,并且它在 localhost 上的服务器上运行良好。实际的挑战是将它托管在 IIS 上,我尝试使用 https 为端口 443 绑定它,但无法让 API 正常工作。任何线索都将受到高度赞赏。

【问题讨论】:

  • 您的问题解决了吗?如果您的问题得到解决,那么我请求您将有用的建议标记为答案。这将帮助面临同样问题的其他人。如果您的问题仍然存在,请尝试参考社区成员提供的解决方案。如果您还有其他问题,请告诉我们。我们将尝试提供进一步的建议来解决问题。

标签: java spring-boot windows-services iis-8 host


【解决方案1】:

一种选择是使用 AJP,即将 .addHttpListener(8080, "localhost") 更改为 .addAjpListener(8009, "localhost"),然后安装 ISAPI redirector for Microsoft IIS,这是一个代理,允许 IIS 使用 AJP 协议将请求转发到后端 Web 服务器。

虽然上面指向 ISAPI 重定向器的链接指向 Tomcat 站点,但重定向器并不真正关心 AJP 连接另一端的服务器是什么,因此它不一定是 Tomcat。

【讨论】:

    【解决方案2】:

    您可以使用 spring-boot-maven-plugin。一旦通过 Spring Initializr 创建 Spring 项目作为 Maven 项目,该插件就会自动添加到 pom.xml。

    <build>
      <plugins>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
      </plugins>
    </build>
    

    将应用打包成一个jar文件,在项目目录下运行maven命令mvn package。这会将应用程序打包到一个可执行的 jar 文件中,其中包含它的所有依赖项(包括嵌入式 servlet 容器——如果它是一个 Web 应用程序)。要运行 jar 文件,请使用以下标准 JVM 命令java -jar &lt;jar-file-name&gt;.jar

    How can I deploy a spring-boot application on Windows Server 2012 R2?

    【讨论】:

      最近更新 更多