由于此问题并没有阐明清楚是在什么情况下做到这两个ip服务器之间访问,所以下面自己能通过服务器之间直接互ping、前端开发处理方式和后端开发处理方式这问题来说明。此问题直观问题就是跨网段访问的问题。
首先解决两个服务器之间直接访问的问题。以liunx服务器为例,由于处于不同网段或端口不允许ping,不能做到直接访问到服务器。这里面有很多高深知识和问题,自己不是专业运维人员,只能简单讲一下处理这种问题的思路。对于跨网段的问题,可以通过添加路由方式解决,例如192.168.2.1不能ping通192.168.1.1,我们可以在192.168.2.1上执行vi /etc/rc.local;然后在文件最后一行添加route add default gw 192.168.2.1;wq保存退出即可。
前端项目布署的服务,由于现在前后端分离的开发方式,HTTP同源策略安全模型的问题就需要规避。因为在不同ip下的服务器,所以具体点就是跨域问题。解决跨域问题有很多方式,例如JSONP、iframe、CORS访问、Nginx反向代理等。在个人实际开发工作中,前后端分离与Vue等前端框架的流行,以及nginx的强大,使用CORS和Nginx方式最为理想。
如果是后端项目布署的服务器之间访问,以java为例,可以使用使http相关类实现数据访问。例如HttpUrlConnection和HttpClient等,前题是服务器之间没做网络安全策略。如果是通过tcp方式访问服务,可以使用Socket来实现编程用于传输文件等。
随着微服务的流行,类似springcloud的微服务直接就跟ip无关了,我们只需通过服务名发现就能做到直接访问。具体来说就是192.168.1.1上的微服务注册到eureka,192.168.2.1上的微服务也注册在同一个eureka集群下,2.1就可以直接通过feign框架加上1.1注册的服务名做到访问调用,而不用关心ip是多少。当然也要考虑到微服务在多实例下负载均衡的问题,因为不能保证每次访问都能击中192.168.1.1这台服务器。单实例就不说了,肯定是这一台ip服务器上服务被访问到。
篇幅有限,不能做到面面俱到,其中不足之处请指出并斧正。对于此问题还有什么补充的地方,也欢迎大家积极探讨。
-
IP
+关注
关注
5文章
1609浏览量
149237 -
服务器
+关注
关注
12文章
8954浏览量
85069
发布评论请先 登录
相关推荐
评论