tomcat - 我如何告诉本地机架服务器 (pow.cx) 代理到 tomcat?

标签 tomcat pow.cx

因此,我使用 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/

相关文章:

java - tomcat中的io处理

security - 使用 liferay 启动 tomcat 8 时存在严重的安全限制

ruby-on-rails - OSX Yosemite 更新破坏了 pow.cx

unix - 为什么 TOMCAT 服务器在 unix 中自动重启?

java - VM 内存空间大导致 Tomcat 性能下降

tomcat - 同一台服务器上的多个 tomcat ...ajp 停止工作