Ruby on rails Phusion乘客:ArgumentError(US-ASCII中的字节序列无效)

Ruby on rails Phusion乘客:ArgumentError(US-ASCII中的字节序列无效),ruby-on-rails,encoding,nginx,passenger,Ruby On Rails,Encoding,Nginx,Passenger,我正在Ubuntu 14.04.1下运行一个小型Rails应用程序,使用RVM管理rubies。我已经开始使用Phusion Passenger 4.0.48/nginx软件包,这样我最终可以在低容量生产环境中为同一台服务器上的多个Rails应用程序提供服务。该应用程序使用RSolr调用SOLR服务器,从旧的实验室笔记本中获取文本 当我使用WEBrick或Passenger独立应用服务器运行应用程序时,它工作正常。但是当我在nginx下运行它时,当从SOLR返回某些文本时,我会得到一个错误:

我正在Ubuntu 14.04.1下运行一个小型Rails应用程序,使用RVM管理rubies。我已经开始使用Phusion Passenger 4.0.48/nginx软件包,这样我最终可以在低容量生产环境中为同一台服务器上的多个Rails应用程序提供服务。该应用程序使用RSolr调用SOLR服务器,从旧的实验室笔记本中获取文本

当我使用WEBrick或Passenger独立应用服务器运行应用程序时,它工作正常。但是当我在nginx下运行它时,当从SOLR返回某些文本时,我会得到一个错误:

 ArgumentError (invalid byte sequence in US-ASCII):
  <internal:prelude>:10:in 'synchronize'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:74:in 'process_request'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:141:in 'accept_and_process_next_request'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:109:in 'main_loop'
  /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:448:in 'block (3 levels) in start_threads'
我假设这是由于SOLR返回的非ASCII文本显示在显示页面上。由于在WEBrick或passenger单机服务器下运行时没有出现此错误,因此我假设这是由于与passenger和nginix交互方式相关的一些配置设置造成的。我在谷歌上搜索过这个问题,大多数帖子都涉及到在ruby代码中使用utf8,或者获得正确的环境设置,例如,但似乎没有什么能解决这种情况


关于我应该在哪里查看或排除故障,或者我应该在哪里更改配置设置,有什么建议吗?谢谢。

这可能会对您有所帮助@RAJ Fair point,我应该在我的问题中补充一点,即我以前曾尝试过GEMFILE修改,如您所述,并从命令行运行export LANG=en_US.UTF-8和export LC_ALL=en_US.UTF-8,然后重新启动nginx。不走运我在原始问题中引用的链接很接近,但问题是它告诉我将Encoding.default_external=Encoding::UTF_8和Encoding.default_internal=Encoding::UTF_8放在我的文件中。对我有效的解决方案是将其放在environment.rb中,如下所述: