Ruby on rails 同一rails应用程序的多个端口
我正试图找到一种部署RAILS应用程序(RAILS 3.2、apache、passenger)的方法。该应用程序有两种不同的通信方式Ruby on rails 同一rails应用程序的多个端口,ruby-on-rails,apache,passenger,Ruby On Rails,Apache,Passenger,我正试图找到一种部署RAILS应用程序(RAILS 3.2、apache、passenger)的方法。该应用程序有两种不同的通信方式 用户像rails应用程序一样连接到我们的https站点。这是由标准的商业CA签署的 自动机器连接到我们的站点,并使用客户端证书身份验证和检索数据。这一切都由我们自己的CA和证书管理 目前我不考虑平衡,该应用程序将在一台机器上运行。 我无法在443上使用可选的证书检查来组合这两种方法,因为这会影响在同一apache实例上运行的其他应用程序,因此我认为我需要为该应用程
感谢您的rails应用程序中的,如果您希望在请求类型上设置行为条件,您可以添加一个类似以下内容的小助手方法:
class ApplicationController < ActionController::Base
def api_request?
request.port == 443
end
end
class ApplicationController
然后在其他控制器中:
class UserController < ApplicationController
def index
@users = User.all
if api_request?
render :json => @users.to_json
else
render :action => :index
end
end
end
class UserController@users.to_json
其他的
呈现:操作=>:索引
结束
结束
结束
您不能只使用不同的域,然后使用vhost将它们分开吗?不同的域与在不同端口上使用相同的域并使用不同的vhost几乎是一样的。问题不在于如何设置端口,而在于如何设置passenger和rails,以便为同一基础应用程序使用不同的端口。嗯,有趣的是,由于passenger使用vhost的应用程序,我不确定这是否可行。你能转移到不同的web服务器设置,如passenger->unicorn(甚至是nginx->unicorn)吗?不太可能。特别是出于浏览目的,我们需要集成到一个apache实例中,该实例运行许多其他我们无法控制的东西。也许我们可以将apache端口反向代理到另一台服务器,但我认为管理员不会高兴。就问题的目的而言,我没有。太好了,我以为在请求中的某个地方会有通往港口的通道。虽然没有被接受,但我仍然在寻找一个人来回答更大的设置问题。