networking - 我可以使用反向代理直接连接数据库吗?
问题描述
是否可以设置允许数据库客户端使用 ssl 端口 443 连接并重定向到端口 1521 的反向代理?我怀疑它不会起作用。有人可以解释为什么或为什么不?
解决方案
我假设基于端口 1521 的 Oracle 数据库。
为任何 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
我从未见过 Nginx 设置为数据库的代理。相反,连接池(即 postgresql 的 pgbouncer)通常不仅用于池,而且还用作 SSL 卸载服务。它们实际上是数据库的 L7 代理。
pgbouncer 的 Oracle 等效项似乎是 Oracle Connection Manager,它支持 SSL,所以我强烈建议使用它而不是 Nginx 或任何其他通用反向代理服务器:
推荐阅读
- vhdl - 错误 (10327):VHDL 错误:无法确定运算符“”=“”的定义——找到 0 个可能的定义
- amazon-web-services - 如何将安全组附加到 EKS 集群中的负载均衡器?
- mysql - 在按和计数分组后获取左加入
- dataframe - “DataFrame”对象在数据块中没有“显示”属性
- python - 未找到 BS4 模块
- flutter - 如何在颤动中并排对齐列表视图中的项目?
- asp.net-core - 使用 Html.BeginCollectionItem 从模式弹出窗口中捕获数据作为部分视图的一部分
- android - 类型与 Kotlin 通用适配器不匹配
- java - 如何使用 redis-cli 控制台列出数据?
- angular - 执行 ng serve 时的“wdm”是什么?