我有一个在老旧 Weblogic 服务器上运行的旧应用程序。我注意到较新的 SSL 证书与我的旧 Java 不兼容,因此我想设置一个卸载服务器来处理我通过 https 发出的检索客户数据的请求。
我想要完成的是设置一个新的服务器,该服务器应作为 https 到 http 隧道,并且我正在考虑以以下方式在该服务器上设置与我的客户相对应的路径:
- Weblogic 使用 URL /cust01/path-to-data 调用桥接服务器。
- 然后,桥接器使用 SSL 以相同的数据路径调用客户的服务器
- 服务器将其返回给 Weblogic
对于 cust02 等也是一样。这可能需要一张包含所有客户、他们的别名(“cust02”)和相应外部 URL 的表格。
另一种方法,但我必须承认我完全不知所措,就是保留来自 Weblogic 的 URL,但在通过中间服务器时以某种方式将 http... 切换为 https...。
我已经尝试过 apache2 和 mod_proxy,但不确定是否正确。到目前为止,我已经成功将本地地址“foo”传输到 Google,但问题是我用于测试的浏览器显示了 Google 页面,但 URL 也发生了变化。好像我被转移到了 Google,当我尝试访问远程服务器上的文件时,出现了错误。
实现此目标的最简单方法是什么?Apache 是正确的工具吗?还是我应该在其他地方搜索?
答案1
首先,URL 更改可能不是你的错,而是由于 Google 重定向了你(你要求google.com
,他们会将你引荐到google.de
或类似的东西)。
解决这个问题的最佳方法是使用 HTTP 代理,假设你的应用程序中有该设置(希望你有,因为它很常见。
因为你需要一个正向代理,而不是反向代理(您更换的是客户端而不是服务器),您不必担心客户端可见性(服务器使客户端感到困惑)等问题。
我会使用 nginx,因为它比 Apache 快得多,并且具有更简洁的配置界面。
这篇文章讨论了使用 nginx 作为正向代理,您应该这样做
http://nginx.org/en/docs/beginners_guide.html#proxy
相关部分如下:
server {
listen 8080;
location / {
resolver 8.8.8.8;
proxy_pass https://$http_host$uri$is_args$args;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
请注意,我修改了proxy_pass
使用 https 作为协议 - 这意味着如果目标网站不使用 https,此代理将失败