所以,我使用pow.cx来支持我的大多数静态localhost需求 - 我已经设法通过rack-legacy来为它提供服务。
但是,我现在发现自己处于需要使用Tomcat进行项目的位置,但我仍然希望尽可能使用Pow。原因很多,但基本上我宁愿提供除了需要java via rack的部分之外的所有东西。
我想知道是否有办法告诉pow代理对端口8081上本地运行的tomcat服务器的请求?我认为config.ru可能会被告知要做一些,但我真的不知道如何(因为我不是真正的Ruby专家)。
如果有人能在这里提供帮助,那就太棒了。我在SO上发现了一些类似的主题,但似乎没有什么比我在这里尝试做的更合适。
干杯
答案 0 :(得分:2)
在这里没有答案后,我在其他地方找到了更多的挖掘和组合解决方案 - 以下是我已经知道的从配置pow到使用rack-legacy来处理php文件以及来自其他地方的一些知识的组合在互联网上:
解决方案在于另一个宝石:机架反向代理。
如果您还没有安装宝石,只需运行
gem install rack-reverse-proxy
从命令行
一旦你安装了它,从一个php项目修改现有的config.ru文件以适应这里是一个相对简单的问题,并且对所有对Tomcat的请求都有前进功能。
假设您的本地tomcat服务器正在端口8001上运行:
require 'rack'
require 'rack/reverse_proxy'
require 'rack-rewrite'
INDEXES = ['index.html','index.php', 'index.cgi']
ENV['SERVER_PROTOCOL'] = "HTTP/1.1"
use Rack::ReverseProxy do
# Set :preserve_host to true globally (default is true already)
reverse_proxy_options :preserve_host => true
# Forward the path /* to tomcat.
# You can limit this to requests to certain paths by providing a more specific
# path as the first argument
reverse_proxy '/', 'http://localhost:8081'
end
use Rack::ReverseProxy
run Rack::File.new Dir.getwd
毕竟这真的很简单。
我希望这些知识可以在将来的奇怪情况下帮助别人!