我在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和nginix如何交互相关的一些配置设置。我在这个问题上搜索过,大多数帖子都涉及在ruby代码中使用utf8,或者获得正确的ENV设置,例如: here,但似乎没有解决这种情况。
有关我应该在哪里偷看或排除故障,或者我应该在哪里更改配置设置的任何建议?谢谢。