由于此問題并沒有闡明清楚是在什么情況下做到這兩個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文章
1716瀏覽量
149835 -
服務器
+關注
關注
12文章
9295瀏覽量
85884
發布評論請先 登錄
相關推薦
評論