因此,我使用 pow.cx 来满足我的大部分静态本地主机需求 - 我也设法让它通过 rack-legacy 为 php 提供服务。
但是,我现在发现自己处于一个项目需要使用 Tomcat 的位置,但我仍然希望尽可能地使用 Pow。这样做的原因是多方面的,但基本上我宁愿通过机架提供除需要 java 的部分之外的所有内容。
我想知道是否有办法告诉 pow 代理关闭对端口 8081 上本地运行的 tomcat 服务器的请求?我想 config.ru 可能会被告知做一些这样的事情,但我真的不知道怎么做(因为我不是真正的 Ruby 专家)。
如果有人能在这里提供帮助那就太好了。我在 SO 上找到了一些类似的主题,但似乎没有什么与我在这里尝试做的很相符。
干杯
最佳答案
在这里没有答案后,我做了一些更多的挖掘,并将在其他地方找到的解决方案组合在一起 - 以下是我从配置 pow 到使用 rack-legacy 处理 php 文件以及其他地方的一些知识的组合在互联网上:
解决方案在于另一个 gem:rack-reverse-proxy。
如果您还没有安装 gem,只需运行
gem install rack-reverse-proxy
从命令行
一旦你安装了它,从一个 php 项目修改一个现有的 config.ru 文件以适应这里并让 pow 转发所有请求到 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
毕竟这真的很简单。
我希望这些知识能在我以后遇到奇怪情况时对其他人有所帮助!
关于tomcat - 我如何告诉本地机架服务器 (pow.cx) 代理到 tomcat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20375197/