将 Rails 3.2.12 应用程序(带引擎)部署到 nginx/passenger 上的 SUB URI 时出现 404 Not Found 错误

2023-12-01

我们需要部署一个rails 3.2.12 app to sub uri nbhy on a ubuntu 12.04服务器。这rails app has 3 engines其中之一是authentify用于用户身份验证。主应用程序的根目录指向身份验证的登录页面。这是主应用程序中的routes.rb:

  root :to => "authentify::sessions#new"
  match '/signin',  :to => 'authentify::sessions#new'
  match '/signout', :to => 'authentify::sessions#destroy'
  match '/user_menus', :to => 'user_menus#index'
  match '/view_handler', :to => 'authentify::application#view_handler'

该应用程序已部署到基本 urinbhy运行于ubuntu 12.04 with passenger and nginx。在同一台服务器上,还有另一个 Rails 应用程序在其自己的子 URI 中运行。这是 nginx.conf 中的配置sub uri nbhy:

server {
   listen 80;
   server_name 6.95.225.93;
   root /var/www/;
   passenger_enabled on;
   rails_env production;
   passenger_base_uri /by;
   passenger_base_uri /nbhy;

   #for rails >=3.1, assets pipeline
   location ~ ^/assets/ {
     expires max;
     add_header Cache-Control public;
     add_header ETag "";
     break;
   }
}

Also a symlink nbhy创建于document root /var/www指向/var/www/nbhyop/current/public。这是输出root /var/www/:

total 8
lrwxrwxrwx 1 cjadmin www-data   28 Nov  3  2012 by -> /var/www/byop/current/public
drwxrwsr-x 4 cjadmin www-data 4096 Nov  4  2012 byop
lrwxrwxrwx 1 cjadmin www-data   30 May 16 21:27 nbhy -> /var/www/nbhyop/current/public
drwxrwsr-x 4 cjadmin www-data 4096 May 14 15:21 nbhyop

The by is the firstRails 应用程序部署到sub URI并且工作正常。

The login page输入后显示http://6.95.225.93/nbhy。输入用户名和密码后,页面被重定向到http://6.95.225.93/authentify/session with 404 Not Found错误。发现一个错误nginx error.log:

2013/05/13 16:29:25 [error] 2384#0: *1 open() "/var/www/authentify/session" failed (2: No such file or directory), client: 192.168.1.1, server: 6.95.225.93, request: "POST /authentify/session HTTP/1.1", host: "6.95.225.93", referrer: "http://6.95.225.93/nbhy/"

明显地/var/www/authentify/session不会到达正确的页面,因为它缺少base uri nbhy之间www and authentify。根据我们的分析,create in authentify session controller尚未被击中,即使使用正确的用户名和密码,用户也尚未通过身份验证http://6.95.225.93/nbhy.

还发现用户可以login at http://6.95.225.93/nbhy/authentify/session/new有一些扭曲。登录后页面将重定向至http://6.95.225.93/user_menus这会抛出404 Not Found错误。但是如果我们插入nbhy之间为:http://6.95.225.93/nbhy/user_menus,然后它会弹出user menus page成功地。如需进一步点击链接,请手动插入nbhy将使链接工作(如果nbhy不见了)。

Rails 应用程序在部署时运行良好,无需sub uri.

为什么路由中缺少子 uri?有没有一种方法可以让我们nbhy留在这里并消除错误?感谢帮助。


最有可能的是authentify引擎正在重定向到/user_menus, 代替/nbhy/authentify。这是您编写的自定义 Rails 或 Sinatra 应用程序吗?如果是这样,您需要更改/配置以下代码authentify始终附加托管 Rails 应用程序的当前子目录。你可以从乘客那里得到这个信息:ENV['RAILS_RELATIVE_URL_ROOT']在你的代码中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Rails 3.2.12 应用程序(带引擎)部署到 nginx/passenger 上的 SUB URI 时出现 404 Not Found 错误 的相关文章

  • 将 Rack::Deflater 插入机架中的哪个位置?

    我目前有以下内容 use Rack Rewrite use Rack Cache verbose gt true metastore gt memcached localhost 11211 rack cache meta entityst
  • 用于验证目的的动态查找方法

    我正在使用 Ruby on Rails 3 0 7 我想在运行时查找一些记录以进行验证 但为该查找方法传递 设置一个值 也就是说 在我的班级中 我有以下内容 class Group lt lt ActiveRecord Base valid
  • Bash for Windows 10 gcc 不会编译粘贴到根目录中的 c 文件

    正如标题所示 如果我将在其他地方编写的c文件粘贴到Linux子系统的根目录中 则无法编译它 我做了一个测试 我制作了两个不同标题的 hello world 程序 一个在 vi 中 我可以从 bash 界面进入 另一个在其他地方 当我编译了
  • 回形针:样式取决于模型(has_many 多态图像)

    我已将模型设置为使用多态图像模型 这工作正常 但是我想知道是否可以更改每个模型的 styles 设置 找到了一些使用 STI 模型 Art has many images as gt imageable Image belongs to i
  • Shift 键在我的 emacs 中不起作用

    I run emacs in gnome terminal with nw option it works well except for some key shortcuts that include the shift key For
  • 带有 @global gem 的 Ruby/RVM - 捆绑包运行失败并显示“require”:无法加载此类文件 - 捆绑器 (LoadError)

    我学习了linux 1个月 当我试图使所有步骤从在 Heroku 上从 MySQL 迁移到 Postgres https devcenter heroku com articles heroku mysql我遇到了一个无法处理的错误 当我尝
  • Rails 中多个模型的最佳实践 - 嵌套/非嵌套和验证

    笔记 根据布莱恩的评论 来自如何以 Rails 形式处理多个模型 https stackoverflow com questions 892624 how to handle multiple models in a rails form
  • ror 中的多种布局

    昨天刚开始使用 Ruby on Rails 在我的 layouts application html erb 中 我有 div class conta div
  • 使用设计宝石导轨注销用户

    在管理部分 我显示当前登录用户的列表 现在管理员可以选择一个或多个用户并销毁他们的会话 注销他们 我不知道从哪里开始 请帮助我 您可以使用sign out通过传入用户对象在控制器操作中的方法 Make sure only admins ca
  • 如何在 Rails 测试中填充查找表

    我在用Cucumber RSpec and 工厂女工用于测试我的 Rails 应用程序 但我有几个查找表 其中大部分包含static数据 所以我试图找出测试时填充这些的最佳方法 单独做它们FactoryGirl看起来很乏味 我想远离固定装置
  • ruby 管道、IO 和 stderr 重定向

    我希望有一个 ruby 程序 一个 rake 任务 观察另一个 rake 任务的输出 输出写入器输出到 stderr 我想读一下这些行 我很难设置它 如果我有一个作家 stdout writer rb 不断打印一些东西 usr bin en
  • 如何在 Ruby 中创建自定义排序方法

    我想指定一个自定义块方法 通过评估两个属性来对对象数组进行排序 然而 经过多次搜索 我没有找到任何没有的例子 lt gt 操作员 我想比较a to b if a x less than b x return 1 if a x greater
  • 为什么我需要 Nginx 和 Puma?

    我正在将 Rails 应用程序部署到生产环境中 看起来 Puma 速度很快 可以处理我想要在网络服务器中完成的许多事情 我想知道我是否需要使用 Nginx 如果只使用 Puma 我会错过什么 Nginx 是一个 Web 服务器 puma 是
  • 从 Rails 3.1.3 升级到 Rails 3.2.1。资产错误

    我尝试将应用程序从 Rails 3 1 3 升级到 Rails 3 2 1 但资产出现问题 我有这样的错误 ActionController RoutingError No route matches GET assets logos op
  • dlib 不使用 CUDA

    我使用 pip 安装了 dlib 我的显卡支持 CUDA 但是在运行 dlib 时 它不使用 GPU 我在 ubuntu 18 04 上工作 Python 3 6 5 default Apr 1 2018 05 46 30 GCC 7 3
  • Capistrano:deploy.rb 文件重构

    我的deploy rb中有以下代码 namespace app do desc copies the configuration frile from shared config yml to config task copy config
  • 如果使用 jQuery 添加字段,Rails 嵌套表单属性不会保存

    我有一个带有嵌套表单的 Rails 表单 我使用 Ryan Bates 嵌套表单和 jquery 教程 并且就动态添加新字段而言 它工作得很好 但是当我提交表单时 它不会保存任何关联的属性 但是 如果在表单加载时构建部分 则它会很好地创建属
  • Devise:允许用户注册为“UsErNaMe”但使用“用户名”登录

    与大多数网站的工作方式相同 我将 UsErNaMe 存储在数据库中 但让用户使用 用户名 登录 这是一个相当明显且必要的功能 很多人似乎都问过它 但我不断遇到的解决方案似乎与 Devise 自己的文档脱节 例如 考虑这篇博文 http an
  • 为 Rails 上的 postgresql 创建用户

    我选择 postgresql 作为我的 Rails 数据库 但当我尝试运行 rake db create all 时 我遇到了一个明显常见的错误 即 致命 角色 app 不存在 我找到了两种解决方案 但我不确定哪一种是正确的 有一个网站说
  • 添加两个 ActiveRecord::Relation 对象[重复]

    这个问题在这里已经有答案了 如何将两个关系添加在一起 当我尝试 运算符时 它返回一个数组 但我需要它来返回关系 谢谢 麦克风 Try new relation relation merge another relation

随机推荐

  • 如何删除已打开句柄的文件?

    问题历史 现在我用Windows 媒体播放器 SDK 9在我的桌面应用程序中播放 AVI 文件 它在 Windows XP 上运行良好 但是当我尝试运行它时在 Windows 7 上我发现了一个错误 我无法在播放后立即删除 AVI 文件 问
  • django从文件导入模板[重复]

    这个问题在这里已经有答案了 我有 3 个页面 每个 html 文件的顶部都有相同的菜单 菜单中有很多标签 当我想修改标签中的所有链接时遇到问题 我想将菜单写入另一个名为 menu txt 的文件中 并使用模板加载 menu txt 然后将菜
  • 将图像从网络摄像头发布到 Azure Face Api

    我正在尝试将从网络摄像头获取的图像上传到 Microsoft Azure Face Api 我从 canvas toDataUrl image png 获取图像 其中包含数据 Uri 我将内容类型更改为 application octet
  • 用于从字符串中删除特定 BBCode 的正则表达式

    我正在尝试编写一个简单的方法来从输入字符串中删除特定的 BBCodes 例如 我有一个输入 string input b Hello World b 我希望能够做到 Remove input b 并得到输出 Hello World 正则表达
  • Numpy 似乎产生了不正确的特征向量

    我想使用 Numpy 计算特征值和特征向量 这是我的代码 import numpy as np from numpy import linalg as LA lapl np array 2 1 1 0 0 0 1 3 0 1 0 1 1 0
  • 通过 .NET 关闭时 Excel 2007 挂起

    我有一个 Visual Basic NET 程序 需要打开和关闭 Excel 电子表格 打开和阅读电子表格工作正常 但尝试关闭 Excel 2007 应用程序会导致其挂起 它似乎关闭了 但如果您查看任务管理器 应用程序仍在运行 我用来关闭它
  • 折叠所有表单项 JQuery Mobile

    使用 JQuery 移动版 1 4 0 我有一个表单 其中包含许多带有多个复选框的可扩展元素 当我单击刷新按钮时 我可以清除所有用户选择 但不同的字段集仍然存在expanded 我可以刷新页面 但我认为这不是一个顺利的选择 除了为每个字段集
  • JButton settext具体位置

    我有一个带有图像图标的 JButton 我需要定位文本 有没有办法将 JButton 的文本定位在特定位置 而不是使用 CENTER LEADING TOP 等 我以前从未在 JButton 上尝试过 但也许您可以添加 JLabel 作为按
  • 如何在 Spring 后端获取可变 HTML 表单值 (POST)

    我对 Java 和 Spring 框架相当陌生 这可能很容易解决 但我找不到这个问题的任何解决方案 并且其他解决方案不适合我的问题 我想实现一个动态表单 用户可以在其中插入多个电子邮件地址来发送邀请 这种形式可以通过JS动态扩展 每次点击都
  • 测试 SAS 宏中的空参数

    例如 我有一个宏程序 macro test parameter1 parameter2 parameter3 DATA data gender SET data input WHERE gender parameter3 RUN mend
  • Zend Framework 和 Mysql - 非常慢

    我正在使用 php mysql 和 zend 框架创建一个网站 当我尝试运行任何 sql 查询时 页面生成时间会跳至 0 5 秒左右 那太高了 如果我打开sql 页面生成是0 001 我运行的查询量并没有真正影响页面生成时间 测试了 1 1
  • 附加到对象

    我有一个保存警报和有关它们的一些信息的对象 var alerts 1 app helloworld message message 2 app helloagain message another message 除此之外 我还有一个变量表
  • Facebook 的 Qt 客户端

    我想用Facebook API http wiki developers facebook com index php API 在我的Qt Application 我不想使用WebKit 是否可以使用QNetwork only 有没有关于如
  • 如何从包含值的 JSON 对象的数组中删除元素

    请注意 这篇文章已标记为jq 我根本不想用 javascript 来做到这一点 我有一个对象 其字段之一是数组 我想从对象的数组中删除与条件匹配的元素 但保留该对象 我环顾四周 只能发现返回的片段just现在恰好有较少项目的数组 这是一个例
  • PhpStorm 中的 SCSS 自动前缀器

    我正在尝试在 phpstorm 中配置 SASS SCSS Autoprefixer 但这里或谷歌上的任何地方都没有解决方案对我有用 任何帮助都是值得赞赏的 我尝试了很多选项 包括制作自定义文件观察器和使用 postcss cli auto
  • Yii2 - 子域路由

    我想使用子域作为 id 并且我需要动态路由器来执行此操作 在网址管理器 我添加了这一行 http
  • 间隔的符号?

    我想为实数区间创建一个 Python 类 与数学符号最密切相关的语法是Interval a b 或者 甚至更好 Interval a b 构造所有实数的区间x令人满意a lt x lt b 是否可以构造一个处理这种语法的类 通过创建自定义类
  • Manifest v3 资源必须列在 web_accessible_resources 中

    即使在 manifest json 中正确声明了 image copy svg 我也会收到此错误 拒绝负载 chrome extension pofbdjeepddggbelfghnndllidnalpde images copy svg
  • 根据数组中的值替换字符串中的多个单词

    我有一个字符串数组和另一个字符串 let array one two three let string one two three four five six seven 从字符串中删除数组中找到的匹配项的 Swifty 方法是什么 我尝试
  • 将 Rails 3.2.12 应用程序(带引擎)部署到 nginx/passenger 上的 SUB URI 时出现 404 Not Found 错误

    我们需要部署一个rails 3 2 12 app to sub uri nbhy on a ubuntu 12 04服务器 这rails app has 3 engines其中之一是authentify用于用户身份验证 主应用程序的根目录指