通过隧道连接内网的PostgreSQL以及跨域与部署方案

本文介绍了如何通过隧道连接到内网的PostgreSQL数据库,避免直接在外网开放端口,确保数据安全。同时,讨论了项目跨域配置,包括在Tomcat中设置跨域和使用Ajax跨域的方法。最后,提到了部署方案和PostgreSQL在数据分析中的重要性。
摘要由CSDN通过智能技术生成

一般公司都会在集群(eg.Hadoop/Spark集群)上分配许多节点IP,在外网的基础上做的局域网由许多内网(局域网)IP构成。内网相对于互联网世界而言,是虚设的,在公共网络中找不到。鉴于此,为了保护重要数据,会在外网设置一个集群登录入口节点,只具备登录权限,用来跳转到其他节点IP以实现多路复用。

连接与跳转

  • ssh 账户@外网ip->通过外网进入登录节点
  • password...
  • ssh 内网ip or ssh 账户@内网ip->通过ssh,选择跳转到哪个虚拟机
  • su root->进入虚拟机后,切换root用户以便切换到仅对数据库有权限的账户dbuser
  • su dbuser->切换成dbuser,进行数据库操作

隧道

①为了给后台项目和Navicat等数据库工具提供通道连接到客户提供的数据库服务器(在局域网中,只能通过外网找到),需要用隧道做一个映射;
②可在XShell中,进行查看-隧道窗格-添加 转移规则;
③紧接着,在本机localhost中找一个没有被占用的端口(eg.3280),源:localhost:3280 –映射–> 局域网IP:5432

原理

比如客户提供给我们一台postgresql数据库服务器,这款软件的默认端口是5432,但是在局域网中它仅是被分配出来的虚拟机,如果需要通过其他网络连接进来,需要在客户的外网开辟一个端口(不一定为5432)来映射局域网中的这台postgresql数据库。
但往往这种做法是不被采用的,因为它可能会泄露客户的私密数据。
(注:没有在登录节点映射的话是不能外网登录的,建议数据库不要开外网端口)
想要连接这台在客户那里的局域网服务器,可以用我们前面建立的隧道,而不必在客户外网开辟端口映射。
项目的配置文件:

<property name="connection.url">jdbc:postgresql://localhost:3280/数据库名(客户提供的内网数据库名称)</property>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.username">客户提供的账户名</property>
<property name="connection.password">客户提供的密码</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值