Ruby on rails 4 suburi不适用于nginx,它给了我“无路由匹配”异常

Ruby on rails 4 suburi不适用于nginx,它给了我“无路由匹配”异常,ruby-on-rails-4,nginx,Ruby On Rails 4,Nginx,我需要使用/browse在子uri下运行Rails应用程序/ 这是我公司的根域WEBSITE.COM 我的应用程序的根域应该以https://WEBSITE.COM/browse 然而,如果我在路由文件中添加scope ENV['RAILS\u RELATIVE\u URL\u ROOT']do,我总是会遇到异常没有路由匹配 我应该怎么做来解决这个问题 环境 ENV['RAILS\u RELATIVE\u URL\u ROOT']=/browse/ routes.rb application

我需要使用/browse在子uri下运行Rails应用程序/

这是我公司的根域
WEBSITE.COM

我的应用程序的根域应该以
https://WEBSITE.COM/browse

然而,如果我在路由文件中添加
scope ENV['RAILS\u RELATIVE\u URL\u ROOT']do
,我总是会遇到异常
没有路由匹配

我应该怎么做来解决这个问题

环境
  • ENV['RAILS\u RELATIVE\u URL\u ROOT']=/browse/
routes.rb application.rb nginx.conf #更新

访问日志 如果我删除路由中的
scope ENV['RAILS\u RELATIVE\u URL\u ROOT']

看起来一切正常,但url帮助程序将被破坏

也就是说,会话\u销毁\u url将
https://WEBSITE.COM/session/destroy
但不是
https://WEBSITE.COM/browse/session/destroy

当我试图访问
https://WEBSITE.COM/browse
当我试图访问
https://WEBSITE.COM/browse/browse/1
Nginx日志

…com/browse/browse/1

这是因为您让nginx按照您使用的方式从
$uri
中剥离
/browse
部分:

如果您的目的不是在事物向上游移动时剥离
/browse
,那么这就是您应该拥有的:

location /browse {
    proxy_pass http://unix:/tmp/puma.broswe.sock:/browse;
}
或者这个:

location /browse {
    proxy_pass http://unix:/tmp/puma.broswe.sock:;
}

是的,原稿中的额外尾随是导致上游缺少
/browse
的原因。

一切正常,你找到解决方案了吗?请也发布错误日志;请确保此键入是故意的,因为我的puma套接字可以接收连接。@illusionist请查看我的更新,以及问题的适当关键字是什么
sub-uri
sub-domain
sub-folder
,因为信息非常稀少thanks@newBike,我的回答解决了你的问题吗?
I, [2015-10-20T07:07:15.956058 #30522]  INFO -- : Started GET "/" for 127.0.0.1 at 2015-10-20 07:07:15 +0000
F, [2015-10-20T07:07:15.957575 #30522] FATAL -- :
ActionController::RoutingError (No route matches [GET] "/"):
server {
        listen 443;
        server_name WEBSITE.COM;
    location /browse {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://unix:/tmp/puma.broswe.sock:/;
    }
}%
  I, [2015-10-22T00:14:18.847598 #22300]  INFO -- : Started GET "/" for 127.0.0.1 at 2015-10-22 00:14:18 +0000
  F, [2015-10-22T00:14:18.848971 #22300] FATAL -- :
  ActionController::RoutingError (No route matches [GET] "/"):
    actionpack (4.2.0) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
    actionpack (4.2.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
    railties (4.2.0) lib/rails/rack/logger.rb:38:in `call_app'
    railties (4.2.0) lib/rails/rack/logger.rb:20:in `block in call'
    activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `block in tagged'
    activesupport (4.2.0) lib/active_support/tagged_logging.rb:26:in `tagged'
    activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `tagged'
    railties (4.2.0) lib/rails/rack/logger.rb:20:in `call'
    actionpack (4.2.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
    rack (1.6.1) lib/rack/methodoverride.rb:22:in `call'
    rack (1.6.1) lib/rack/runtime.rb:18:in `call'
    activesupport (4.2.0) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
    actionpack (4.2.0) lib/action_dispatch/middleware/static.rb:113:in `call'
    rack (1.6.1) lib/rack/sendfile.rb:113:in `call'
    dragonfly (0.9.15) lib/dragonfly/middleware.rb:13:in `call'
    rack-cache (1.2) lib/rack/cache/context.rb:136:in `forward'
    rack-cache (1.2) lib/rack/cache/context.rb:245:in `fetch'
    rack-cache (1.2) lib/rack/cache/context.rb:185:in `lookup'
    rack-cache (1.2) lib/rack/cache/context.rb:66:in `call!'
    rack-cache (1.2) lib/rack/cache/context.rb:51:in `call'
    railties (4.2.0) lib/rails/engine.rb:518:in `call'
    railties (4.2.0) lib/rails/application.rb:164:in `call'
    rack (1.6.1) lib/rack/urlmap.rb:66:in `block in call'
    rack (1.6.1) lib/rack/urlmap.rb:50:in `each'
    rack (1.6.1) lib/rack/urlmap.rb:50:in `call'
    puma (2.11.3) lib/puma/configuration.rb:51:in `call'
    puma (2.11.3) lib/puma/server.rb:507:in `handle_request'
    puma (2.11.3) lib/puma/server.rb:375:in `process_client'
    puma (2.11.3) lib/puma/server.rb:262:in `block in run'
    puma (2.11.3) lib/puma/thread_pool.rb:104:in `call'
    puma (2.11.3) lib/puma/thread_pool.rb:104:in `block in spawn_thread'
I, [2015-10-22T00:15:32.391853 #22300]  INFO -- : Started GET "/browse/1" for 127.0.0.1 at 2015-10-22 00:15:32 +0000
F, [2015-10-22T00:15:32.393190 #22300] FATAL -- :
ActionController::RoutingError (No route matches [GET] "/1"):
  actionpack (4.2.0) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.2.0) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.2.0) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.2.0) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.2.0) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.6.1) lib/rack/methodoverride.rb:22:in `call'
  rack (1.6.1) lib/rack/runtime.rb:18:in `call'
  activesupport (4.2.0) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/static.rb:113:in `call'
  rack (1.6.1) lib/rack/sendfile.rb:113:in `call'
  dragonfly (0.9.15) lib/dragonfly/middleware.rb:13:in `call'
  rack-cache (1.2) lib/rack/cache/context.rb:136:in `forward'
  rack-cache (1.2) lib/rack/cache/context.rb:245:in `fetch'
  rack-cache (1.2) lib/rack/cache/context.rb:185:in `lookup'
  rack-cache (1.2) lib/rack/cache/context.rb:66:in `call!'
  rack-cache (1.2) lib/rack/cache/context.rb:51:in `call'
  railties (4.2.0) lib/rails/engine.rb:518:in `call'
  railties (4.2.0) lib/rails/application.rb:164:in `call'
  rack (1.6.1) lib/rack/urlmap.rb:66:in `block in call'
  rack (1.6.1) lib/rack/urlmap.rb:50:in `each'
  rack (1.6.1) lib/rack/urlmap.rb:50:in `call'
  puma (2.11.3) lib/puma/configuration.rb:51:in `call'
  puma (2.11.3) lib/puma/server.rb:507:in `handle_request'
  puma (2.11.3) lib/puma/server.rb:375:in `process_client'
  puma (2.11.3) lib/puma/server.rb:262:in `block in run'
  puma (2.11.3) lib/puma/thread_pool.rb:104:in `call'
  puma (2.11.3) lib/puma/thread_pool.rb:104:in `block in spawn_thread'
    10.0.0.97 - - [25/Oct/2015:09:24:45 +0000] "GET /browse HTTP/1.1" 404 715 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36"
    10.0.0.97 - - [25/Oct/2015:09:24:45 +0000] "GET /browse HTTP/1.1" 404 715 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36"
    10.0.0.97 - - [25/Oct/2015:09:25:12 +0000] "GET /browse/123 HTTP/1.1" 404 715 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36"
location /browse {
    proxy_pass http://unix:/tmp/puma.broswe.sock:/;
}
location /browse {
    proxy_pass http://unix:/tmp/puma.broswe.sock:/browse;
}
location /browse {
    proxy_pass http://unix:/tmp/puma.broswe.sock:;
}