【发布时间】:2011-06-21 01:53:27
【问题描述】:
在我面向公众的 Apache2 服务器上,通过子 URI 访问我的 Rails 3 应用程序,例如
https://www.myserver.com/myapp/controller...
该服务器被配置为反向代理到另一个通过Passenger托管Rails应用程序的Apache2服务器:
http://intranet.server.com/myapp
在我的内网服务器的 VirtualHost 设置中
SetEnv RAILS_RELATIVE_URL_ROOT "/myapp"
在我的 config/environments/production.rb 文件中,我取消了该行的注释
config.log_level = :debug
这样,我的应用程序中的第一个执行方法就出问题了:
logger.debug { "The environment variable RAILS_RELATIVE_URL_ROOT is presently #{ENV['RAILS_RELATIVE_URL_ROOT']}" }
果然,在你看到的生产日志文件中:
The environment variable RAILS_RELATIVE_URL_ROOT is presently /myapp
然而,日志中的下一行是,这显然是浏览器去的:
Redirected to https://www.myserver.com/controller/action
我在 Stackoverflow 上了解了这个环境变量,所以这是对一个人有用的,但另一个人说它没有,另一个人说它有用。因此,根据我的经验,我们现在处于平局。我错过了什么吗?
【问题讨论】:
标签: ruby-on-rails-3 apache2 passenger reverse-proxy