【问题标题】:Can I use a reverse proxy for direct database connection?我可以使用反向代理直接连接数据库吗?
【发布时间】:2020-10-10 03:53:30
【问题描述】:

是否可以设置允许数据库客户端使用 ssl 端口 443 连接并重定向到端口 1521 的反向代理?我怀疑这行不通。有人可以解释为什么或为什么不?

【问题讨论】:

    标签: networking reverse-proxy nginx-reverse-proxy


    【解决方案1】:

    我假设 Oracle 数据库基于端口 1521。

    为任何 TCP 后端设置 Nginx TCP (L4) 代理都没有问题。看这里https://www.nginx.com/blog/tcp-load-balancing-udp-load-balancing-nginx-tips-tricks/ 的配置示例。

    当涉及到终止 SSL (L5) 并将解密的数据发送到 TCP 后端时,ngx_stream_ssl_module 在技术上也是可行的,但我从未测试过它,据我所知,人们在为 postgresql 设置它时遇到了问题:

    http://nginx.org/en/docs/stream/ngx_stream_ssl_module.html

    Can nginx do TCP load balance with SSL termination

    我从未见过将 Nginx 设置为数据库代理。相反,连接池(即 postgresql 的 pgbouncer)通常不仅用于池,还用作 SSL 卸载服务。它们实际上是数据库的 L7 代理。

    pgbouncer 的 Oracle 等效项似乎是 Oracle Connection Manager,它支持 SSL,所以我强烈建议使用它而不是 Nginx 或任何其他通用反向代理服务器:

    https://docs.oracle.com/en/database/oracle/oracle-database/18/netag/configuring-oracle-connection-manager.html#GUID-AF8A511E-9AE6-4F4D-8E58-F28BC53F64E4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-16
      • 2021-01-23
      • 1970-01-01
      • 2014-05-25
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多