You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 17 SSR应用部署至IIS服务器求助

Angular 17 SSR 部署到 IIS 完整步骤

一、部署文件准备

  • 将Angular构建生成的dist/AppName目录下的browser和server两个文件夹,完整复制到IIS站点的物理路径下(不要仅复制server文件夹)。

二、安装IIS必备组件

  • 安装IIS Node:用于在IIS环境中运行Node.js服务,需匹配本地Node.js的LTS版本。
  • 安装URL Rewrite模块:实现请求路由重写,将动态请求转发到SSR服务。

三、配置Web.config文件

替换现有Web.config为以下内容(注意修改Node.js路径占位符):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="iisnode" path="server/main.js" verb="*" modules="iisnode" />
    </handlers>
    <rewrite>
      <rules>
        <!-- 静态资源直接从browser目录返回 -->
        <rule name="StaticContent" stopProcessing="true">
          <match url="([\S]+[.](html|css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot))" />
          <action type="Rewrite" url="browser/{R:1}" />
        </rule>
        <!-- 所有动态请求转发到SSR服务 -->
        <rule name="SSR" stopProcessing="true">
          <match url=".*" />
          <action type="Rewrite" url="server/main.js" />
        </rule>
      </rules>
    </rewrite>
    <iisnode nodeProcessCommandLine="C:\Program Files\nodejs\node.exe" 
             logDirectory="iisnode"
             debuggingEnabled="false" />
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
    </staticContent>
  </system.webServer>
</configuration>
  • 重点:nodeProcessCommandLine需指向本地Node.js的实际安装路径,比如C:\Program Files\nodejs\node.exe。

四、IIS站点配置

  1. 打开IIS管理器,创建新站点,物理路径选择存放browser和server文件夹的目录。
  2. 配置应用程序池:
    • .NET CLR版本选择无托管代码。
    • 确保应用程序池标识拥有站点目录的读写权限(可选用LocalSystem或配置特定权限账户)。
  3. 设置站点绑定:指定域名/IP和未占用的端口。

五、验证与排错

  • 启动站点后访问绑定地址:静态资源需从browser目录正常加载,路由请求应返回SSR渲染页面。
  • 若运行异常,查看IIS日志和站点目录下iisnode文件夹内的日志,定位具体错误。

内容的提问来源于stack exchange,提问作者Bashar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:55:02