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站点配置
- 打开IIS管理器,创建新站点,物理路径选择存放browser和server文件夹的目录。
- 配置应用程序池:
- .NET CLR版本选择无托管代码。
- 确保应用程序池标识拥有站点目录的读写权限(可选用LocalSystem或配置特定权限账户)。
- 设置站点绑定:指定域名/IP和未占用的端口。
五、验证与排错
- 启动站点后访问绑定地址:静态资源需从browser目录正常加载,路由请求应返回SSR渲染页面。
- 若运行异常,查看IIS日志和站点目录下
iisnode文件夹内的日志,定位具体错误。
内容的提问来源于stack exchange,提问作者Bashar
相关产品推荐
相关产品推荐

