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

本地无法启动Rails生产环境模式 求助

解决本地Rails生产环境403 Host Blocked问题

核心问题

日志明确提示[ActionDispatch::HostAuthorization::DefaultResponseApp] Blocked hosts: 127.0.0.1:3000,你仅将localhost加入允许列表,但127.0.0.1与localhost是两个独立的主机标识,Rails的Host Authorization机制会严格匹配请求头中的Host值,因此需要同时添加前者到允许列表。

修复步骤

  1. 修改config/environments/production.rb,补充127.0.0.1到允许主机:
    # 保留原有localhost配置,追加以下行
    config.hosts << "localhost"
    config.hosts << "127.0.0.1"
    # 若需支持任意端口的本地访问,可改用正则匹配
    # config.hosts << /127\.0\.0\.1:\d+/
    # config.hosts << /localhost:\d+/
    
  2. 重启Rails生产服务器(生产环境不会自动加载配置变更):
    rails s -e production
    

额外处理SSL相关问题

你的production.rb中开启了config.force_ssl = true和config.assume_ssl = true,但本地运行生产环境默认没有配置SSL证书,直接访问http://127.0.0.1:3000会被强制跳转至https,导致访问失败。可临时关闭这两项配置以测试:

# 在production.rb中修改
config.assume_ssl = false
config.force_ssl = false

测试完成后再恢复为生产环境所需配置。

排查注意事项

  • 确保修改配置后已重启服务器,Rails生产环境不会热加载配置变更。
  • 使用正则匹配主机时,注意对IP中的点号进行转义(如/127\.0\.0\.1/,而非/127.0.0.1/,后者会匹配任意字符)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:40:03