如何在IIS服务器部署Nuxt 3 SSR应用?已尝试官方方案仍失败
Nuxt 3 SSR 在 IIS 上的部署解决方案
基础环境检查
- 确认 IIS 已安装 URL Rewrite 和 ASP.NET Core Module(Nitro 后端依赖这两个组件处理请求转发)
- 将站点应用池的 .NET CLR 版本设置为 无托管代码(Nitro 基于 Node.js/V8 运行时,无需 .NET 托管环境)
标准化部署步骤
重新构建项目
确保构建流程无报错,执行以下命令:npx nuxi init nuxt3-ssr-demo cd nuxt3-ssr-demo yarn install yarn run build构建完成后,
.output/server目录会生成对应平台的可执行文件(Windows 下为.exe),.output/public存放静态资源。IIS 站点配置
- 新建 IIS 站点,将物理路径指向项目的
.output/public目录 - 在
.output/public目录下创建web.config文件,配置 URL 重写规则:<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Nitro SSR Forward" stopProcessing="true"> <match url="^(.*)$" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="http://localhost:3000/{R:1}" /> </rule> </rules> </rewrite> <httpProtocol> <customHeaders> <add name="X-Forwarded-For" value="{REMOTE_ADDR}" /> <add name="X-Forwarded-Proto" value="{HTTPS}" /> </customHeaders> </httpProtocol> </system.webServer> </configuration>
- 新建 IIS 站点,将物理路径指向项目的
启动 Nitro 服务
打开命令提示符,进入.output/server目录,执行启动命令:.\server.exe先访问
http://localhost:3000确认服务正常运行。验证部署结果
访问 IIS 站点的绑定域名/IP,检查 SSR 页面渲染状态;若出现错误,查看 IIS 日志和浏览器控制台定位问题。
常见问题排查
- 502 错误:检查 Nitro 服务是否启动、端口是否被占用、重写规则的目标地址是否正确
- 静态资源加载失败:确认站点物理路径指向
.output/public,且该目录给 IIS_IUSRS 分配了可读权限 - 构建失败:检查 Node.js 版本是否为 v18+,依赖包是否安装完整
内容的提问来源于stack exchange,提问作者PhantomWolf
相关产品推荐
相关产品推荐

