我在谷歌看了这个,但在我致力于任何一项服务之前想要更多的意见.有没有人有过任何一种(或两种)服务的经验?任何一个都有任何优点或缺点吗?特别感兴趣的领域是:
我有一个网站,我想通过Rackspace,EC2,Heroku或Engine Yard推出.
我已经使用了Heroku,并且喜欢启动和运行,推送更新,管理我的数据库等等是多么简单.但是,要获得基于主机名的SSL,我将需要支付20美元.另外,我不知道Heroku会花多少钱:我不完全确定如何衡量我的网站会看到多少活动.
我有一个交易,我可以从Rackspace和EC2获得几百美元的免费托管,但是......他们会像Heroku一样容易处理吗?Engine Yard怎么样?是否所有这些都会让我为我的SSL证书支付一定的金额来正确设置?
谢谢!请让我知道我可以澄清的内容 - 我对启动网站的世界还很陌生:)
林戈
希望每个人都很好,做得好!我陷入一个奇怪的问题,我正在寻找你的输入.
我的问题是:
使用Capistrano在Production上部署我的应用程序后,当我进行solr重新索引时,它给出了以下错误:
$ bundle exec rake sunspot:reindex --trace
** Invoke sunspot:reindex (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute sunspot:reindex
Skipping progress bar: for progress reporting, add gem 'progress_bar' to your Gemfile
rake aborted!
RSolr::Error::Http - 404 Not Found
Error: Not Found
Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><delete>query>type:OccupationData</query></delete>"
Backtrace: /data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/rsolr-1.0.9/lib/rsolr/client.rb:268:in `adapt_response'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/rsolr-1.0.9/lib/rsolr/client.rb:175:in `execute'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/rsolr-1.0.9/lib/rsolr/client.rb:161:in `send_and_receive'
(eval):2:in `post'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/rsolr-1.0.9/lib/rsolr/client.rb:67:in `update'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/rsolr-1.0.9/lib/rsolr/client.rb:131:in `delete_by_query'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/sunspot-1.3.3/lib/sunspot/indexer.rb:55:in `remove_all'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/sunspot-1.3.3/lib/sunspot/session.rb:181:in `block in remove_all'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/sunspot-1.3.3/lib/sunspot/session.rb:181:in `each'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/sunspot-1.3.3/lib/sunspot/session.rb:181:in `remove_all'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/sunspot-1.3.3/lib/sunspot/session_proxy/abstract_session_proxy.rb:11:in `remove_all'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/rsolr-1.0.9/lib/rsolr/client.rb:268:in `adapt_response'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/rsolr-1.0.9/lib/rsolr/client.rb:175:in `execute'
/data/APP_NAME/shared/bundled_gems/ruby/1.9.1/gems/rsolr-1.0.9/lib/rsolr/client.rb:161:in …Run Code Online (Sandbox Code Playgroud) Rails 4.2中是否需要使用secret_key_base和secret_token?设置都不会导致以下异常消息:
缺失
secret_token和secret_key_base对"生产"的环境中,在设置这些值config/secrets.yml
4.2升级指南(http://railsapps.github.io/updating-rails.html)说明了这一点:
使用rails new命令创建新的Rails应用程序时,会生成一个唯一的密钥并将其写入config/initializers/secret_token.rb文件.
但是当我生成我的应用程序时没有创建这样的文件,并且config/secrets.yml中没有对secret_token的引用
我假设错误消息是错误的,并且只需要secret_key_base.当我在我的开发机器上运行我的应用程序时,它只从secret_key_base开始,但在Engineyard中,设置secret_key_base(通过环境变量)不起作用.我仍然得到错误.
我从heroku了解到,可以通过heroku config:add MY_ENV_VAR=123本地运行来添加环境变量.如何与发动机厂实现同样的目标?
在https://support.cloud.engineyard.com/entries/21715452-use-elastic-load-balancing-with-engine-yard-cloud上关注 Engine Yard文档
得到了这个设置并且似乎运行良好,允许我们在ELB上使用SSL Terminated而不是服务器.从理论上讲,这应该允许我们在单一环境中使用多个SSL证书.
此设置意味着浏览器和ELB负载平衡器之间的流量是SSL,但是从ELB到应用程序服务器的转发流量将被解密.这导致我们的rails 3.2.8应用程序强制SSL出现问题 - 它将每个解密的请求重定向回其https等效项,后者再次从负载均衡器向应用程序服务器发送解密请求,从而导致无限循环条件.
如果我们在我们的应用程序中禁用强制SSL,我们需要测试每个请求以查看它是否来自SSL连接,如果它确实我们可以响应,如果没有,则重定向它.
根据此发行说明(http://aws.amazon.com/releasenotes/7778622769836370),当从https连接传递流量时,ELB将传递包含"https"的X-Forwarded-Proto标头.
首先,在Engine Yard的请求中没有名为"X-Forwarded-Proto"的标题."HTTP_X-FORWARDED_PROTO"确实存在,但即使通过SSL将流量发送到ELB,它也始终包含"http".
任何人都可以提供任何洞察力或解决方法的想法吗?到目前为止,我已经尝试了没有太多运气的安永支持.
ssl ruby-on-rails amazon-web-services http-headers engineyard
我们正在使用默认安装了Python的EngineYard.但是当我们启用SSL时,我们从我们的logentries厨师食谱收到以下错误消息.
"警告:"ssl"模块不存在.使用不可靠的解决方法,无法验证主机身份.如果可能,请安装"ssl"模块或更新版本的Python(2.6)."
我正在寻找一种方法来安装带有厨师食谱的SSL模块,但我根本没有足够的经验.有人能指出我正确的方向吗?
资源:Logentries厨师食谱:https://github.com/logentries/le_chef
Logentries EY docs:https://logentries.com/doc/engineyard/
我最近在"Engine Yard"上部署了一个rails应用程序.我正在使用"Engine Yard"的"trail版本".我的问题是,在部署应用程序后,当我访问应用程序URL时,它会引发"内部服务器错误(500)".而且我无法查看应用程序的生产环境日志以查找问题.
在"Engine Yard"界面中,我只能看到"部署日志".并且它没有在该日志中显示任何错误.
我尝试使用以下命令从终端使用"ssh"访问应用程序:"ssh deploy@ec2-XXXXXXXXXXX.com"
但是,它也只显示应用程序的"部署日志".
任何人都可以告诉我,我可以在哪里看到应用程序的生产环境日志.以及它的过程或命令.
提前致谢.
我的应用程序是在Engine Yard服务上,我需要设置环境变量以使用我的秘密ID和密码.
有人知道如何设置每个变量?做这个的最好方式是什么?
更新:
如果您遇到同样的问题,请先阅读" 指示延迟作业已完成的ajax进程 ".谢谢基因.
我有并发问题.我有一个控制器刮几个网站,但每次调用我的控制器需要大约4-5秒来响应.
因此,如果我连续调用2次(或更多次),则第二次调用需要等待第一次调用才能启动.
那我怎么能在我的控制器中解决这个问题呢?也许像EventMachine这样的东西?
更新和示例:
application_controller.rb
def func1
i=0
while i<=2
puts "func1 at: #{Time.now}"
sleep(2)
i=i+1
end
end
def func2
j=0
while j<=2
puts "func2 at: #{Time.now}"
sleep(1)
j=j+1
end
end
Run Code Online (Sandbox Code Playgroud)
whatever_controller.rb
puts ">>>>>>>> Started At #{Time.now}"
func1()
func2()
puts "End at #{Time.now}"
Run Code Online (Sandbox Code Playgroud)
所以现在我需要从同一个用户/浏览器/等同时多次请求http://myawesome.app/whatever.
我用Unicorn尝试过Heroku(和本地),但没有成功,这是我的设置:
要求:
更多信息: 我现在正在运行2台云服务器.
engineyard ×10
heroku ×3
amazon-ec2 ×1
chef-infra ×1
concurrency ×1
deployment ×1
hosting ×1
http-headers ×1
production ×1
python ×1
solr ×1
ssl ×1
sunspot-solr ×1
web-hosting ×1