【发布时间】:2012-09-06 10:50:18
【问题描述】:
我想通过代理服务器与位于我网络外部的 Oracle DB 服务器通信。 我可以通过带有代理设置的浏览器访问托管在同一台机器上的 Web 应用程序。 一个简单的Java程序可以通过代理服务器建立JDBC连接吗?
*提供一个例子会更好*
问候。
【问题讨论】:
我想通过代理服务器与位于我网络外部的 Oracle DB 服务器通信。 我可以通过带有代理设置的浏览器访问托管在同一台机器上的 Web 应用程序。 一个简单的Java程序可以通过代理服务器建立JDBC连接吗?
*提供一个例子会更好*
问候。
【问题讨论】:
如果代理只是一个 HTTP 代理,那么不是。 但如果代理传输 TCP/IP 流量,则可以。
怎么做,看How do I set the proxy to be used by the JVM或http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html
【讨论】:
Oracle JDBC(以及任何其他 JDBC 连接)不是基于 HTTP 的协议,因此代理必须在 TCP 层完成。
出于这个原因,你不能使用例如 Squid Proxy(它只在 HTTP 层做代理),但是还有很多其他的代理服务可以在 TCP 层工作:
关于前者,有一个很好的分步指南,如何使用 NGINX 设置 JDBC 代理 https://kwjrnl.wordpress.com/2015/07/27/tcp-proxy-with-nginx-for-jdbc-connection/
【讨论】: