Ruby on rails FastCGI不使用Rails 4共享主机(Phusion乘客)
我使用的是Rails 4.1.6和ruby 2.1.8p440 目前,我想提高性能并添加configure FastCGI 问题:FastCGI不工作并减慢了我的RoR应用程序。 到目前为止,我有以下目录结构:Ruby on rails FastCGI不使用Rails 4共享主机(Phusion乘客),ruby-on-rails,.htaccess,ruby-on-rails-4,passenger,fastcgi,Ruby On Rails,.htaccess,Ruby On Rails 4,Passenger,Fastcgi,我使用的是Rails 4.1.6和ruby 2.1.8p440 目前,我想提高性能并添加configure FastCGI 问题:FastCGI不工作并减慢了我的RoR应用程序。 到目前为止,我有以下目录结构: 博客(Rails 4应用程序) 公共网页 .htaccess 调度.fcgi My.htaccess文件: PassengerAppRoot "/home/individualki/blogs" PassengerBaseURI "/" PassengerRuby "/home/
- 博客(Rails 4应用程序)
- 公共网页
- .htaccess
- 调度.fcgi
PassengerAppRoot "/home/individualki/blogs"
PassengerBaseURI "/"
PassengerRuby "/home/individualki/rubyvenv/ror/2.1/bin/ruby"
RailsEnv development
SetEnv RAILS_RELATIVE_URL_ROOT /dispatch
RewriteEngine On
RewriteRule ^(stylesheets/.*)$ - [L]
RewriteRule ^(javascripts/.*)$ - [L]
RewriteRule ^(images/.*)$ - [L]
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
#!/home/individualki/rubyvenv/ror/2.1/bin/ruby
ENV['RAILS_ENV'] ||= 'development'
ENV['HOME'] ||= `echo ~`.strip
ENV['GEM_HOME'] = File.expand_path('~/.gems')
ENV['GEM_PATH'] = File.expand_path('~/.gems') + ":" + '/usr/lib/ruby/gems/1.8'
require 'rubygems'
Gem.clear_paths
require 'fcgi'
require '../home/individualki/blogs/config/boot.rb'
require '../home/individualki/blogs/config/environment.rb'
class Rack::PathInfoRewriter
def initialize(app)
@app = app
end
def cadsll(env)
env.delete('SCRIPT_NAME')
parts = env['REQUEST_URI'].split('?')
env['PATH_INFO'] = parts[0]
env['QUERY_STRING'] = parts[1].to_s
@app.call(env)
end
end
Rack::Handler::FastCGI.run
Rack::PathInfoRewriter.new(blogs::Application)
My dispatch.fcgi文件:
PassengerAppRoot "/home/individualki/blogs"
PassengerBaseURI "/"
PassengerRuby "/home/individualki/rubyvenv/ror/2.1/bin/ruby"
RailsEnv development
SetEnv RAILS_RELATIVE_URL_ROOT /dispatch
RewriteEngine On
RewriteRule ^(stylesheets/.*)$ - [L]
RewriteRule ^(javascripts/.*)$ - [L]
RewriteRule ^(images/.*)$ - [L]
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
#!/home/individualki/rubyvenv/ror/2.1/bin/ruby
ENV['RAILS_ENV'] ||= 'development'
ENV['HOME'] ||= `echo ~`.strip
ENV['GEM_HOME'] = File.expand_path('~/.gems')
ENV['GEM_PATH'] = File.expand_path('~/.gems') + ":" + '/usr/lib/ruby/gems/1.8'
require 'rubygems'
Gem.clear_paths
require 'fcgi'
require '../home/individualki/blogs/config/boot.rb'
require '../home/individualki/blogs/config/environment.rb'
class Rack::PathInfoRewriter
def initialize(app)
@app = app
end
def cadsll(env)
env.delete('SCRIPT_NAME')
parts = env['REQUEST_URI'].split('?')
env['PATH_INFO'] = parts[0]
env['QUERY_STRING'] = parts[1].to_s
@app.call(env)
end
end
Rack::Handler::FastCGI.run
Rack::PathInfoRewriter.new(blogs::Application)
之后,我重新启动了服务器
touch tmp/restart.txt
然后访问我的web应用程序,发现它工作不正常。内容已加载,但没有任何资产-图像、css或js文件。应用程序已经变得慢多了
之后,我检查了我的Cpanel,发现我的应用程序现在使用的最大进程为40/40,CPU使用率上升。这些事情以前从未发生过(至少我没有看到)
我的日志文件:
Started GET "/dispatch/assets/parsley.js?body=1" for 85.254.76.76 at 2016-09-24 12:57:06 +0300
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (75.0ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.6ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (367.4ms)
ActionController::RoutingError (No route matches [GET] "/dispatch/assets/parsley.js"):
actionpack (4.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (4.1.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.1.6) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.1.6) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.1.6) lib/rails/rack/logger.rb:20:in `call'
quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
actionpack (4.1.6) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.3) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.3) lib/rack/runtime.rb:17:in `call'
activesupport (4.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
rack (1.5.3) lib/rack/lock.rb:17:in `call'
actionpack (4.1.6) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.3) lib/rack/sendfile.rb:112:in `call'
railties (4.1.6) lib/rails/engine.rb:514:in `call'
railties (4.1.6) lib/rails/application.rb:144:in `call'
/opt/passenger/lib/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
/opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
/opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
/opt/passenger/lib/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (44.4ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.4ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (282.0ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.3ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (25.0ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.6ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (135.4ms)
Started GET "/dispatch/assets/application.js?body=1" for 85.254.76.76 at 2016-09-24 12:57:07 +0300
ActionController::RoutingError (No route matches [GET] "/dispatch/assets/application.js"):
actionpack (4.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (4.1.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.1.6) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.1.6) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.1.6) lib/rails/rack/logger.rb:20:in `call'
quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
actionpack (4.1.6) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.3) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.3) lib/rack/runtime.rb:17:in `call'
activesupport (4.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
rack (1.5.3) lib/rack/lock.rb:17:in `call'
actionpack (4.1.6) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.3) lib/rack/sendfile.rb:112:in `call'
railties (4.1.6) lib/rails/engine.rb:514:in `call'
railties (4.1.6) lib/rails/application.rb:144:in `call'
/opt/passenger/lib/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
/opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
/opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
/opt/passenger/lib/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.3ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (30.7ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.4ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (147.0ms)
Started GET "/dispatch/assets/co.js?body=1" for 85.254.76.76 at 2016-09-24 12:57:07 +0300
ActionController::RoutingError (No route matches [GET] "/dispatch/assets/co.js"):
actionpack (4.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (4.1.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.1.6) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.1.6) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.1.6) lib/rails/rack/logger.rb:20:in `call'
quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
actionpack (4.1.6) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.3) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.3) lib/rack/runtime.rb:17:in `call'
activesupport (4.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
rack (1.5.3) lib/rack/lock.rb:17:in `call'
actionpack (4.1.6) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.3) lib/rack/sendfile.rb:112:in `call'
railties (4.1.6) lib/rails/engine.rb:514:in `call'
railties (4.1.6) lib/rails/application.rb:144:in `call'
/opt/passenger/lib/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
/opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
/opt/passenger/lib/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
/opt/passenger/lib/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.2ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (31.6ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.6ms)
Rendered /home/individualki/rubyvenv/ror/2.1/gems/actionpack-4.1.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (150.2ms)
提前感谢您的帮助。速度缓慢可能是由于在开发模式下运行以及所有资产404造成的 假设您从这里获得配置: 看起来您的路径可能配置不正确。这篇文章是这样说的: 这里的事情让我有点困惑。Dreamhost不允许webrick在共享主机帐户上运行,所以我必须找到一个替代方案。幸运的是,一旦你知道要寻找什么,安装起来就很容易了。在要安装Redmine/Rails应用程序的域的根目录中,创建一个
public
文件夹。您将在这里创建两个文件:dispatch.fcgi和.htaccess。以下是您的dispatch.fcgi的外观:
调度.fcgi
.htaccess
AddHandler fastcgi script.fcgi
AddHandler fcgid script.fcgi
选项+FollowSymLinks+ExecCGI
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$dispatch.fcgi/$1[QSA,L]
ErrorDocument 500“Rails应用程序无法正确启动”