规格:Rails 4.2.4,Ruby 2.1.9,在生产模式下运行puma,EC2实例
我有一个要安装在服务器上的SSL证书,但是使用这种方法无法产生结果
rails s puma -b 'ssl://0.0.0.0:9292?key=path_to_key.key&cert=path_to_cert.crt&verify_mode=none&ca=path_to_root_bundle.crt'
How to configure Rails with Puma to use SSL?
还
RAILS_ENV=production rvmsudo -E rails s puma -b "ssl://0.0.0.0:9292?key=${KEY_PATH}&cert=${CERT_PATH}&verify_mode=peer&ca=${CERT_BUNDLE_PATH}" -p 80
我得到的不是正常运行的服务器
Puma以单模式启动... *版本3.2.0(红宝石2.1.9-p490),代号:Spring是一个日心视点 *最小线程数:0,最大线程数:16 *环境:生产 *正在听tcp:// ssl://0.0.0.0:9292?key =〜/ evslideshow.key&cert =〜/ e3b162f57ea48f91.crt&verify_mode = peer&ca =〜/ gd_bundle-g2-g1.crt:80 退出中 > /home/ec2-user/.rvm/gems/ruby-2.1.9@slideshow/gems/puma-3.2.0/lib/puma/binder.rb:240:in 'initialize':getaddrinfo:名称或服务未知(SocketError)
现在我的想法正在发挥不同的作用。我只是在这里缺少使用彪马的一些基本方面吗?彪马文档非常害怕,这就是为什么我在这里问。或者我可以使用Nginx,因为互联网上似乎有很多关于使用SSL证书进行设置的文档。
如果有一个更简单的puma修复程序,那么我将使用它。
答案 0 :(得分:0)
通过阅读puma的Github页面上的issue pages找到了解决方案。显然,尽管在此old stackoverflow answer
中已经说过了,但我们必须直接而不是通过rails server
来调用puma。
工作代码是
RAILS_ENV=production rvmsudo -E puma -d -b "ssl://0.0.0.0:443?key=${KEY_PATH}&
cert=${CERT_PATH}&verify_mode=peer&ca=${CERT_BUNDLE_PATH}" -p 80
确保还要在生产配置文件中打开config.force_ssl。