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

有没有简单的方法可以在IIS上运行并部署Rails应用?

离线环境IIS部署Rails应用最简方案

前置准备(在与服务器同架构的联网设备上完成)

  • 先在和离线服务器操作系统、CPU架构完全一致的联网设备上,安装对应版本的Ruby、Rails运行环境,拉取你的Rails项目代码后执行bundle install --deployment,将所有依赖gem全部打包到项目的vendor目录下
  • 预编译生产环境静态资源:执行rails assets:precompile RAILS_ENV=production,确认public目录下生成了完整的静态资源文件
  • 下载Windows Service Wrapper(WinSW)的单文件exe程序,用于将Puma封装为系统服务,不需要额外依赖
  • 将完整的Rails项目目录、WinSW程序、IIS所需的ARR模块、URL Rewrite模块离线安装包统一打包,拷贝到离线服务器

离线服务器配置步骤

第一步:部署Puma本地服务

  • 将项目压缩包解压到服务器本地路径,例如C:\production_rails_app
  • 在项目根目录新建WinSW配置文件puma-svc.xml,内容参考如下:
<service>
  <id>RailsPumaProd</id>
  <name>Rails Puma Production Service</name>
  <description>Puma server for production Rails app</description>
  <executable>C:\production_rails_app\bin\ruby.exe</executable>
  <arguments>C:\production_rails_app\bin\puma -e production -p 3000</arguments>
  <logpath>C:\production_rails_app\log</logpath>
  <onfailure action="restart" delay="10 sec"/>
</service>
  • 将WinSW的exe文件重命名为puma-svc.exe,和上述xml文件放在同目录,打开管理员权限CMD进入对应路径,依次执行puma-svc.exe install、puma-svc.exe start完成服务安装启动,本地访问127.0.0.1:3000验证Rails应用正常运行

第二步:配置IIS反向代理

  • 先在离线服务器安装提前准备好的ARR、URL Rewrite模块安装包,安装完成后重启IIS管理器
  • 新建IIS站点,绑定你需要的访问端口、域名,物理路径指向Rails项目的public目录
  • 选中该站点,打开「URL重写」功能,新建反向代理规则:入站目标地址填127.0.0.1:3000,勾选启用SSL卸载,保存规则后重启IIS站点
  • 直接访问IIS绑定的地址即可正常访问Rails应用,静态资源由IIS直接响应,动态请求转发到Puma处理

方案优势

  • 所有依赖均提前打包,完全不需要离线服务器连接外网下载任何资源
  • 逻辑简单易排查,不需要Docker、HttpPlatformHandler等复杂组件,兼容性更高
  • 静态资源走IIS响应,性能优于纯Puma部署
  • Puma封装为系统服务,支持开机自启、崩溃自动重启,稳定性有保障

内容的提问来源于stack exchange,提问作者Claudio Scabbia Sepúlveda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:06:04