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