我正在Heroku上载ROR应用程序,但出现此错误。
/app/vendor/bundle/ruby/2.4.0/gems/puma-3.12.1/lib/puma/binder.rb:273:in 'initialize':
Cannot assign requested address - bind(2) for "xyz.herokuapp.com" port 28159 (Errno::EADDRNOTAVAIL)
我附加了procfile和puma.rb代码。
Procfile
:
web: bundle exec puma -c config/puma.rb
release: bundle exec rake db:migrate
puma.rb
:
threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
threads threads_count, threads_count
port ENV.fetch("PORT") { 3000 }
environment ENV.fetch("RAILS_ENV") { "development" }
我也尝试了彪马3.7,但没有运气 procfile的配置也改变了
在本地可以正常工作,但可以在heroku上出错。
答案 0 :(得分:1)
在Heroku上部署Rails 6.0时,我遇到了同样的问题。 我使用一个名为HOST的环境变量来向ActionDispatch::HostAuthorization中间件提供heroku服务器的url,因为rails要求提供它是为了防止DNS重新绑定和其他Host Header攻击。 当heroku服务器尝试启动服务器时,环境变量HOST的名称引起了副作用,讨论了该问题here,我使用的解决方案与here相同。
config.hosts << ENV['HOST']
中使用config.hosts << ENV['DOMAIN']
希望这会有所帮助。